File size: 2,337 Bytes
c92c3bf
e353211
4bfe53e
e37369c
4c2a00d
d4578f1
4db54a2
e63689d
74773e5
04bb611
 
1dc4338
e63689d
2327f0b
5d06296
 
95c49b7
37aff79
5d06296
0e921e3
5d06296
624116f
4999ab5
 
5d06296
a22a330
 
37465d6
 
4999ab5
f01a417
1be066d
351e87d
5d06296
1be066d
 
 
 
cee00cf
eb85da3
 
5d06296
43dc6c6
37465d6
 
df15652
5d06296
037e937
e353211
e50c01e
e353211
037e937
 
3395806
ad7c470
 
e353211
 
 
eff6977
4c9915a
a5e5cd6
b869265
 
f6dd4bf
 
 
 
 
 
 
eff6977
f6dd4bf
 
 
7951e3f
 
1c61c68
e353211
5d06296
037e937
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82

import sys   
import time
import yaml
import os
import pytz # Had to give it permission in Code agent  

from ui.contentagentui import ContentAgentUI
from smolagents import CodeAgent, InferenceClientModel

from checks.status_check import resolve_endpoint, is_endpoint_healthy 

from tools.tools import load_tools
from prompts.prompts import load_prompts
   
def initialize_agent(endpoint_uri: str):

    
    combined_tools = load_tools() ## from the tools folder (don't remove final answer)

    """Initialize and configure the CodeAgent"""
    model = InferenceClientModel  (
        max_tokens=2096,
        temperature=0.5,
        model_id=endpoint_uri,
        custom_role_conversions=None,
    )

    agent = CodeAgent(
        model=model,
        tools=combined_tools,
        
        name="content_agent",
        description="Evaluates whether text is polite or impolite.",
        verbosity_level=5,              # max log level for built-in logs
        max_steps=8,
        planning_interval=1,           # force a plan every step (shows plan/update)
        max_print_outputs_length=None, 
        additional_authorized_imports=["pytz"],
        stream_outputs=True ,
        prompt_templates=load_prompts(),  
    ) 
    
    return agent 
    
    
def main():
    uri = resolve_endpoint()
    if not uri:
        print("❌ Endpoint not ready: no URI configured. Ensure that the HF_ENDPOINT_URI secret has been defined in the current Space.")
        sys.exit(1)   # exit with non-zero status for clarity
    ok, msg = is_endpoint_healthy(uri)
    if not ok:
        print(f"Endpoint not ready: {msg}")
    print(f"uri: {uri}") 
    
    #  We want to create a basic GUI calling the ContentAgentUI.. 
    #  The default flow should be to show the "Wake Endpoint" button
    #  If the end point is ready, don't show it.

    agent_type = 'deepseek-ai/DeepSeek-R1-Distill-Qwen-32B'
    agent_type = 'https://huggingface.co/Qwen/Qwen2.5-Coder-32B-Instruct'
    compute =  "GCP: GPU · Nvidia L4 · 4x GPUs · 96 GB"

    ui = ContentAgentUI(   
        endpoint_uri=uri,
        is_healthy=ok,
        health_message=msg,
        agent_initializer=initialize_agent,
        agent_type = agent_type,
        compute = compute
        
    )
    
    ui.launch() 
    
    

    
if __name__ == "__main__":
    main()