Apelarea funcțiilor cu LLM-uri
Începerea cu apelarea funcțiilor
Apelarea funcțiilor este capacitatea de a conecta în mod fiabil LLM-urile la instrumente externe pentru a permite utilizarea eficientă a instrumentelor și interacțiunea cu API-uri externe.
LLM-urile precum GPT-4 și GPT-3.5 au fost fine-tunate pentru a detecta când o funcție trebuie apelată și apoi să producă JSON conținând argumentele pentru a apela funcția. Funcțiile care sunt apelate prin apelarea funcțiilor vor acționa ca instrumente în aplicația ta AI și poți defini mai multe într-o singură cerere.
Apelarea funcțiilor este o abilitate importantă pentru construirea de chatbot-uri sau agenți alimentați de LLM care trebuie să recupereze context pentru un LLM sau să interacționeze cu instrumente externe prin conversia limbajului natural în apeluri API.
Ce permite apelarea funcțiilor
Apelarea funcțiilor permite dezvoltatorilor să creeze:
- Agenți conversaționali care pot folosi eficient instrumente externe pentru a răspunde la întrebări. De exemplu, întrebarea "Cum este vremea în Belize?" va fi convertită într-un apel de funcție precum
get_current_weather(location: string, unit: 'celsius' | 'fahrenheit') - Soluții alimentate de LLM pentru extragerea și etichetarea datelor (de ex., extragerea numelor de persoane dintr-un articol Wikipedia)
- Aplicații care pot ajuta la conversia limbajului natural în apeluri API sau interogări valide de bază de date
- Motoare conversaționale de recuperare a cunoștințelor care interacționează cu o bază de cunoștințe
În acest ghid, demonstrăm cum să promptăm modele precum GPT-4 și modele open-source pentru a executa apelarea funcțiilor pentru diferite cazuri de utilizare.
Apelarea funcțiilor cu GPT-4
Ca exemplu de bază, să zicem că am cerut modelului să verifice vremea într-o locație dată.
LLM-ul singur nu ar putea răspunde la această cerere deoarece a fost antrenat pe un set de date cu un punct de întrerupere. Modul de a rezolva aceasta este să combini LLM-ul cu un instrument extern. Poți valorifica capacitățile de apelare a funcțiilor ale modelului pentru a determina o funcție externă de apelat împreună cu argumentele sale și apoi să-l faci să returneze un răspuns final. Mai jos este un exemplu simplu despre cum poți realiza aceasta folosind API-urile OpenAI.
Exemplu: Interogarea vremii
Să zicem că un utilizator întreabă următoarea întrebare modelului:
"Cum este vremea în Londra?"
Pentru a gestiona această cerere folosind apelarea funcțiilor, primul pas este să definești o funcție de vreme sau un set de funcții pe care le vei transmite ca parte a cererii API OpenAI:
tools = [
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "Obține vremea actuală într-o locație dată",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "Orașul și statul, de ex. San Francisco, CA",
},
"unit": {
"type": "string",
"enum": ["celsius", "fahrenheit"]
},
},
"required": ["location"],
},
},
}
]Funcția get_current_weather returnează vremea actuală într-o locație dată. Când transmiți această definiție de funcție ca parte a cererii, nu execută de fapt o funcție, ci doar returnează un obiect JSON conținând argumentele necesare pentru a apela funcția.
Implementarea
Poți defini o funcție de completare după cum urmează:
def get_completion(messages, model="gpt-3.5-turbo-1106", temperature=0, max_tokens=300, tools=None):
response = openai.chat.completions.create(
model=model,
messages=messages,
temperature=temperature,
max_tokens=max_tokens,
tools=tools
)
return response.choices[0].messageAșa poți compune întrebarea utilizatorului:
messages = [
{
"role": "user",
"content": "Cum este vremea în Londra?"
}
]În final, poți apela get_completion de mai sus și să transmiți atât mesajele cât și instrumentele:
response = get_completion(messages, tools=tools)Obiectul de răspuns conține următoarele:
ChatCompletionMessage(content=None, role='assistant', function_call=None, tool_calls=[ChatCompletionMessageToolCall(id='...', function=Function(arguments='{"location":"London","unit":"celsius"}', name='get_current_weather'), type='function')])În special, obiectul de argumente conține argumentele importante extrase de model și care vor fi necesare pentru a completa cererea.
Poți apoi alege să apelezi un API extern de vreme pentru vremea reală. Odată ce ai informațiile despre vreme disponibile, le poți transmite înapoi la model pentru a rezuma un răspuns final având în vedere întrebarea originală a utilizatorului.
Notebook-uri
Iată un notebook cu un exemplu simplu care demonstrează cum să folosești apelarea funcțiilor cu API-urile OpenAI:
Notă: Mai multe note despre apelarea funcțiilor cu LLM-uri open-source vor apărea în curând.
Cazuri de utilizare pentru apelarea funcțiilor
Mai jos este o listă de cazuri de utilizare care pot beneficia de capacitatea de apelare a funcțiilor a LLM-urilor:
1. Agenți conversaționali
Apelarea funcțiilor poate fi folosită pentru a crea agenți conversaționali complecși sau chatbot-uri care răspund la întrebări complexe prin apelarea API-urilor externe sau a bazei de cunoștințe externe și furnizarea de răspunsuri mai relevante și utile.
2. Înțelegerea limbajului natural
Poate converti limbajul natural în date JSON structurate, extrage date structurate din text și executa sarcini precum recunoașterea entităților numite, analiza sentimentelor și extragerea cuvintelor cheie.
3. Rezolvarea problemelor matematice
Apelarea funcțiilor poate fi folosită pentru a defini funcții personalizate pentru a rezolva probleme matematice complexe care necesită pași multipli și diferite tipuri de calcule avansate.
4. Integrarea API
Poate fi folosită pentru a integra eficient LLM-urile cu API-uri externe pentru a prelua date sau executa acțiuni bazate pe intrare. Aceasta ar putea fi utilă pentru a construi fie un sistem de întrebări și răspunsuri, fie un asistent creativ. În general, apelarea funcțiilor poate converti limbajul natural în apeluri API valide.
5. Extragerea informațiilor
Apelarea funcțiilor poate fi folosită eficient pentru a extrage informații specifice dintr-o intrare dată, cum ar fi recuperarea de știri relevante sau referințe dintr-un articol.
Referințe
- Fireworks Ridică Bara de Calitate cu Modelul de Apelare a Funcțiilor și Lansarea API
- Benchmarking-ul utilizării instrumentelor agenților și apelarea funcțiilor
- Apelarea funcțiilor
- Interacțiunea cu API-uri
- Apelarea funcțiilor OpenAI
- Cum să apelezi funcții cu modelele de chat
- Împingerea suportului pentru date structurate al ChatGPT la limitele sale
- Rezolvarea problemelor matematice cu apelarea funcțiilor
