File size: 2,564 Bytes
49c2e76
 
 
 
 
 
80494ac
49c2e76
 
 
 
 
 
 
 
 
 
936b841
49c2e76
8c01ffb
49c2e76
 
 
 
 
 
 
 
 
 
 
 
 
 
ae7a494
8c01ffb
49c2e76
8c01ffb
49c2e76
 
 
 
 
 
 
 
8fe992b
 
49c2e76
 
 
 
 
 
936b841
49c2e76
 
 
 
 
 
 
 
 
 
 
0774b2e
 
49c2e76
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
da smolagents importa CodeAgent,DuckDuckGoSearchTool,HfApiModel,load_tool,tool
importa data e ora
richieste di importazione
importare pytz
importare yaml
da strumenti.final_answer importa FinalAnswerTool

da Gradio_UI importa GradioUI

# Di seguito un esempio di uno strumento che non fa nulla. Stupiscici con la tua creatività!
@attrezzo
def  my_custom_tool ( arg1: str , arg2: int )-> str : #è importante specificare il tipo di ritorno
    #Mantieni questo formato per la descrizione / argomenti / descrizione argomenti ma sentiti libero di modificare lo strumento
    """Uno strumento che non fa ancora nulla
    Argomenti:
        arg1: il primo argomento
        arg2: il secondo argomento
    """
    ritorna  "Quale magia costruirai?"

@attrezzo
def  get_current_time_in_timezone ( fuso orario: str ) -> str :
    """Uno strumento che recupera l'ora locale corrente in un fuso orario specificato.
    Argomenti:
        fuso orario: una stringa che rappresenta un fuso orario valido (ad esempio, 'America/New_York').
    """
    Tentativo :
        # Crea oggetto fuso orario
        tz = pytz.timezone(fuso orario)
        # Ottieni l'ora corrente in quel fuso orario
        ora_locale = datetime.datetime.now(tz).strftime( "%Y-%m-%d %H:%M:%S" )
        restituisci  f"L'ora locale corrente in {timezone} è: {local_time} "
    eccetto Eccezione come e:
        restituisci  f"Errore durante il recupero dell'ora per il fuso orario ' {timezone} ': { str (e)} "


risposta_finale = StrumentoRispostaFinale()

# Se l'agente non risponde, il modello è sovraccarico, utilizzare un altro modello o il seguente Hugging Face Endpoint che contenga anche il codificatore qwen2.5:
# model_id='https://pflgm2locj2t89co.us-east-1.aws.endpoints.huggingface.cloud'

modello = HfApiModel(
numero massimo di token = 2096 ,
temperatura= 0,5 ,
model_id= 'Qwen/Qwen2.5-Coder-32B-Instruct' , # è possibile che questo modello sia sovraccarico
custom_role_conversions= Nessuno ,
)


# Strumento di importazione dall'hub
image_generation_tool = load_tool( "agenti-corso/testo-in-immagine" , trust_remote_code= True )

con  open ( "prompts.yaml" , 'r' ) come flusso:
    prompt_templates = yaml.safe_load(flusso)
    
agente = CodeAgent(
    modello=modello,
    tools=[final_answer], ## aggiungi i tuoi strumenti qui (non rimuovere la risposta finale)
    max_passi= 6 ,
    livello_di_verbosità= 1 ,
    grammatica= Nessuna ,
    planning_interval= Nessuno ,
    nome= Nessuno ,
    descrizione= Nessuno ,
    prompt_templates=template_prompt
)


GradioUI(agente).launch()