File size: 2,550 Bytes
e353211
c92c3bf
e353211
4bfe53e
e37369c
4c2a00d
d4578f1
4db54a2
e63689d
 
04bb611
 
 
1dc4338
e63689d
3638f74
5d06296
 
95c49b7
4368d69
bedeb06
5d06296
0e921e3
5d06296
624116f
4999ab5
 
5d06296
a22a330
 
37465d6
 
4999ab5
f01a417
4999ab5
 
351e87d
5d06296
ad7c470
edb6a0a
4999ab5
5d06296
46e7a7a
 
37465d6
 
df15652
5d06296
037e937
e353211
e50c01e
e353211
037e937
 
3395806
ad7c470
 
e353211
 
 
eff6977
 
 
 
 
 
7951e3f
eff6977
7951e3f
 
 
 
eff6977
 
 
7951e3f
 
 
 
e353211
 
 
 
 
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
83
84
85
86
87
88
89
# from smolagents import DuckDuckGoSearchTool, load_tool,tool

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):

    # Load prompts
    custom_prompts = load_prompts() 
    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,
        max_steps=6,
        verbosity_level=3,
        name="content_agent",
        description="Evaluates whether text is polite or impolite.",
        #prompt_templates=custom_prompts,   # override  prompts
        #instructions = custom_prompts,  # adds additional instructions instead of overriding default prompt
        additional_authorized_imports=["pytz"]
    ) 

   
    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` text generation model """
    compute =  "GCP · 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() 
    
    
    # Initialize and run the agent
    #agent = initialize_agent(endpoint_uri)
    # Create an instance of the ContentAgentUI class
    #ui = ContentAgentUI()
    #ui.pass_through_agent(agent)  # Pass through the agent

    
if __name__ == "__main__":
    main()