OpenAi hat gerade eine coole neue Funktion namens „Funktionsaufruf“ eingeführt. In dieser Geschichte besprechen wir, wie diese Funktion Ihre bestehenden Produkte verbessern kann, indem sie eine Funktion bereitstellt, mit der Benutzer über natürliche Sprache mit ihnen interagieren können. Außerdem zeigen wir ein leicht verständliches Beispiel einer in Python erstellten Foundation-App, die diese neue Funktion nutzt.
Open-AI-Funktionsaufruf ist eine neue Funktion, die es den OpenAI-Modellen wie GPT-3.r Turbo und GPT-4 ermöglicht, Ihnen den Aufruf von in Ihrem Code geschriebenen Funktionen als Reaktion auf natürliche Spracheingaben von Benutzern vorzuschlagen. Es funktioniert, indem es dem Modell mitteilt, welche Funktionen auf Ihrem System verfügbar sind, und deren Zweck und Parameter erklärt. OpenAi kann dann verstehen, wenn die Eingabe eines Benutzers mit diesen Beschreibungen übereinstimmt, und den entsprechenden Funktionsaufruf durchführen. Dadurch wird ein neues Maß an Interaktion und Benutzerfreundlichkeit erreicht, da technisch nicht versierte Benutzer über einfache Eingabeaufforderungen mit technischen Funktionen interagieren können.
GPT-4- und GPT-3.5-Turbo-Updates
Nachfolgend finden Sie die Zuordnung zwischen dem stabilen, alten Modell und dem neuen Modell.
Es scheint, dass auch die API-Dokumentation aktualisiert wurde, additionally überprüfen Sie dies bitte auch.
Für jedes Modell wurden Modelle mit dem Suffix 0613 veröffentlicht.
Es scheint, dass es auch möglich ist, diese Versionen mit Evals, einem Framework zur Bewertung von Modellen, zu vergleichen und zu bewerten.
gpt-3.5-turbo-16k, das im alten Modell nicht existierte, ist erschienen, und es handelt sich um ein Modell, bei dem die maximale Anzahl an Token wie folgt um das Vierfache erweitert wurde.
- Maximale Anzahl an Token für gpt-3.5-turbo : 4096Token
- Maximale Anzahl an Token für gpt-3.5-turbo-16k: 16384Token
Wie unten beschrieben, wird die Gebühr für 16k verdoppelt, die Token-Länge jedoch vervierfacht, sodass es möglicherweise möglich ist, sie auf Anwendungen anzuwenden, die in der Vergangenheit ohne Verwendung eines separaten Frameworks schwierig anzuwenden waren. .
In der offiziellen Ankündigung heißt es übrigens, dass die Tokenlänge von 16k ausreicht, um etwa 20 Seiten Textual content mit einer Anfrage zu verarbeiten.
Andererseits bleiben die TRAININGSDATEN, wie im API-Dokument angegeben, „Bis September 2021“ und die Trainingsdaten bis September 2021 werden wie bisher verwendet.
Es scheint, dass der Lebenszyklus jedes Modells in der Zukunft wie folgt geplant ist.
- Entry mit einem stabilen Modellnamen wird am 27. Juni automatisch auf das oben genannte neue Modell aktualisiert
- Danach ist der Zugriff auf das alte Modell bei expliziter Angabe möglich, der Zugriff auf das alte Modell ist jedoch bis zum 13. September möglich.
- Der Zugriff auf das alte Modell wird von nun an fehlschlagen
Beachten Sie, dass der Zugriff auf ältere Modelle fehlschlägt.
In der offiziellen Ankündigung heißt es auch, dass man hofft, die Warteliste für die neue Model in den kommenden Wochen zu vervollständigen, und es wird erwartet, dass mehr Leute sie nutzen können.
Auch die Preise wurden überarbeitet und einige Funktionen sind jetzt günstiger, was eine gute Nachricht ist.
Zunächst einmal zur Preisrevision von gpt-3.5-turbowerden die Kosten wie folgt zwischen dem Eingabe-Token und dem Ausgabe-Token aufgeteilt.
Obwohl die Berechnungsmethode etwas komplizierter ist, ist die Gebühr auf der Enter-Token-Seite 25 % günstiger.
Der Preis von GPT-4 hat sich nicht geändert und die 16k-Model wurde zu GPT-3.5 hinzugefügt, sodass die Gesamtgebührenstruktur wie folgt aussieht.
Außerdem wurden die Preise für text-embedding-ada-002, eine beliebte Einbettungs-API, wie folgt überarbeitet:
Die Embeddings-API wird oft zum Erstellen vektorisierter Daten verwendet, daher ist der 75 % niedrigere Preis schön.
Dies sind die aktuellen Informationen. Schauen Sie daher unbedingt auf der offiziellen Seite nach Preisinformationen.
Probieren wir es aus
1. Sie möchten mit der Erstellung eines beginnen venv auf Ihrem lokalen Rechner.
Öffnen Sie zunächst Ihr Terminal und erstellen Sie eine virtuelle Umgebung.
python -m venv venv
dann aktiviere es:
venvScriptsactivate
Das solltest du sehen (Venv) jetzt im Terminal.
Jetzt installieren wir die erforderlichen Abhängigkeiten:
Pip set up python-dotenv==1.0.0 , open ai == 0.27.7
Schließlich müssen wir eine Umgebungsvariable für den OpenAI-API-Schlüssel festlegen:
set OPENAI_API_KEY=<YOUR_API_KEY>
Jetzt, wo wir bereit sind, kann es losgehen!
Erstellen Sie eine Datei mit dem Namen „essential.py“wo wir die Funktionen zur Beantwortung von Fragen schreiben werden.
Importieren wir die erforderlichen Abhängigkeiten:
import openai
from dotenv import load_dotenv
import os
Lesen Sie die Datei
load_dotenv()
openai_key = os.getenv("OPENAI_API_KEY")
Ich habe es mit dem folgenden Code versucht.
model_name = "gpt-3.5-turbo-0613"query = "Please inform me the right way to arrange an surroundings with pyenv and pipenv."
response = openai.ChatCompletion.create(
mannequin=model_name,
messages=[
{"role": "user", "content": question},
],
)
print(response.selections[0]["message"]["content"].strip())
"pyenv is a Python model management software that lets you set up a number of Python variations and change between them. pipenv is a software that simplifies the creation of digital environments and package deal administration when utilized in mixture with pyenv."
Ich habe auch gpt-3.5-turbo-0613 ausprobiert und gpt-4–0613aber ich konnte bestätigen, dass sie intestine funktionieren.
Bitte beachten Sie, dass GPT-4 möglicherweise nicht immer funktioniert, da dies vom Standing der Warteliste abhängt.
Versuchen wir, die Funktion aufzurufen
Ich werde dies basierend auf der API-Dokumentation unten versuchen.
Definieren Sie zunächst eine Funktion, um das Wetter abzurufen.
Ursprünglich ist es möglich, auf eine andere API usw. zuzugreifen, aber dieses Mal werden wir feste Wetterinformationen zurückgeben.
import jsondef get_current_weather(location, unit="fahrenheit"):
weather_info = {
"location": location,
"temperature": "30",
"unit": unit,
"forecast": ["sunny", "windy"],
}
return json.dumps(weather_info)
Um der OpenAI-API Informationen zu dieser Funktion zu übermitteln, erstellen Sie als Nächstes Daten mit einer Beschreibung wie folgt.
capabilities=[
{
"name": "get_current_weather",
"description": "Get the current weather at the specified location.",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "City names, place names, prefecture names,",
},
"unit": {"type": "string", "enum": ["celsius", "fahrenheit"]},
},
"required": ["location"],
},
}
]
Von hier aus ist es notwendig, eine kleine Möglichkeit zur Verwendung der OpenAI-API zu entwickeln.
Wenn Sie die Aufruffunktion verwenden, können Sie die OpenAI-API mehr als einmal aufrufen.
Beim ersten Mal handelt es sich um eine normale Abfrage, der Parameter der Funktion erhält jedoch Informationen über die zuvor erstellten Funktionen.
(function_call sollte „auto“ sein)
model_name = "gpt-3.5-turbo-0613"query = "Please inform me in regards to the climate in New York, USA"
response = openai.ChatCompletion.create(
mannequin=model_name,
messages=[
{"role": "user", "content": question},
],
capabilities=capabilities,
function_call="auto",
)
function_call
Wenn die Nachricht der ersten Antwort Folgendes enthält, wird die zweite Anfrage ausgelöst.
message = response["choices"][0]["message"]
message
<OpenAIObject at 0x7f4260054c20> JSON: {
"function": "assistant",
"content material": null,
"function_call": {
"identify": "get_current_weather",
"arguments": "{n "location": "u6771u4eacu90fdu6e2fu533a"n}"
}
Darüber hinaus enthält diese Antwort auch die als Argumente anzugebenden Argumente, sodass Sie basierend auf diesen Informationen die von Ihnen selbst definierte Funktion aufrufen und die zweite Anfrage senden können.
Die Implementierung sieht so aus:
function_name = message["function_call"]["name"]arguments = json.hundreds(message["function_call"]["arguments"])
function_response = get_current_weather(
location=arguments.get("location"),
unit=arguments.get("unit"),
)
second_response = openai.ChatCompletion.create(
mannequin=model_name,
messages=[
{"role": "user", "content": question},
message,
{
"role": "function",
"name": function_name,
"content": function_response,
},
],
)
print(second_response.selections[0]["message"]["content"].strip())
The present climate in New York, USA is evident, with a temperature of 30 levels. It is windy.
Ich konnte bestätigen, dass ich basierend auf der Funktion, die ich selbst definiert habe, reagieren kann.
Wenn man function_call
ist nicht enthalten ( content material
wenn es wie üblich eingebunden ist), kann die Antwort in der ersten Antwort erhalten werden. Wenn Sie additionally die bedingte Verzweigung wie unten gezeigt implementieren, können Sie auch Anfragen verarbeiten, die nicht mit der definierten Funktion zusammenhängen …
if message.get("function_call"):function_name = message["function_call"]["name"]
arguments = json.hundreds(message["function_call"]["arguments"])
function_response = get_current_weather(
location=arguments.get("location"),
unit=arguments.get("unit"),
)
second_response = openai.ChatCompletion.create(
mannequin=model_name,
messages=[
{"role": "user", "content": question},
message,
{
"role": "function",
"name": function_name,
"content": function_response,
},
],
)
print(second_response.selections[0]["message"]["content"].strip())
else:
print(response.selections[0]["message"]["content"].strip())
Darüber können Sie auch Anfragen stellen, die nichts mit dem Wetter zu tun haben.
model_name = "gpt-3.5-turbo-0613"query = "Please inform me the right way to arrange an surroundings with pyenv and pipenv."
response = openai.ChatCompletion.create(
mannequin=model_name,
messages=[
{"role": "user", "content": question},
],
capabilities=capabilities,
function_call="auto",
)
message = response["choices"][0]["message"]
if message.get("function_call"):
function_name = message["function_call"]["name"]
arguments = json.hundreds(message["function_call"]["arguments"])
function_response = get_current_weather(
location=arguments.get("location"),
unit=arguments.get("unit"),
)
second_response = openai.ChatCompletion.create(
mannequin=model_name,
messages=[
{"role": "user", "content": question},
message,
{
"role": "function",
"name": function_name,
"content": function_response,
},
],
)
print(second_response.selections[0]["message"]["content"].strip())
else:
print(response.selections[0]["message"]["content"].strip())
Certain!
Pyenv and Pipenv are helpful instruments for managing Python environments. Right here, we are going to clarify the right way to arrange an surroundings on macOS or Linux.
Ich konnte bestätigen, dass die Verarbeitung ohne die Nutzung der so definierten Funktionen möglich ist.
Dies ist ein sehr gutes Replace für Entwickler, da es offenbar viele Verwendungsmöglichkeiten bietet!
Es scheint, dass in Funktionen mehrere Funktionen festgelegt werden können, sodass der Anwendungsbereich recht groß zu sein scheint.
Übrigens: Selbst wenn Sie die Beschreibung entsprechend umschreiben, um sie verwirrend zu machen, handelt es sich dabei um den Prozess des Aufrufs der Funktion, der regular definiert wurde. Sie können additionally anscheinend nicht sagen, dass Sie einfach anhand der Beschreibung urteilen.
Abhängig von der jeweiligen Abfrage oder Funktion gibt es Fälle, in denen function_call mehr als einmal vorkommt, sodass ich den Eindruck habe, dass damit eine recht komplexe Verarbeitung möglich ist.
Ich würde die Informationen gerne separat erweitern, wenn ich das Verhalten etwas besser verstehen kann.
Wenn Sie nicht möchten, dass die definierte Funktion aufgerufen wird, setzen Sie function_call auf „none“.
Zögern Sie nicht, uns zu kontaktieren, wenn Sie Fragen haben!
📻 Bleiben Sie dran für weitere Particulars zu trendigen KI-bezogenen Implementierungen und Diskussionen zu mein persönlicher Blog und wenn Sie kein mittleres Mitglied sind und unbegrenzte Artikel auf der Plattform haben möchten. Erwägen Sie die Verwendung von my Empfehlungslink hier um sich anzumelden – es ist weniger als der Preis eines guten Kaffees, nur 5 $ professional Monat! Tauchen Sie ein, das Wissen ist großartig!
🧙♂️ Wir sind KI-Anwendungsexperten! Wenn Sie an einem Projekt mitarbeiten möchten, hinterlassen Sie eine Anfrage hier, vorbei kommen unsere Internetseite, oder uns erschießen direkte E-Mail..
📚Schauen Sie sich gerne meine anderen Artikel an: