Heim >Technologie-Peripheriegeräte >KI >OpenAI -Funktion Aufruf Tutorial: Erzeugen Sie strukturierte Ausgabe

OpenAI -Funktion Aufruf Tutorial: Erzeugen Sie strukturierte Ausgabe

Lisa Kudrow
Lisa KudrowOriginal
2025-03-10 12:02:12671Durchsuche

Verwenden von OpenAI ohne Funktionsaufruf

In diesem Abschnitt generieren wir Antworten mit dem GPT-3.5-Turbo-Modell ohne Funktion, um festzustellen, ob wir konsistente Ausgabe erhalten oder nicht.

Bevor Sie die OpenAI -Python -API installieren, müssen Sie einen API -Schlüssel erhalten und auf Ihrem lokalen System einrichten. Folgen Sie dem GPT-3.5 und GPT-4 über die OpenAI-API im Python-Tutorial, um zu erfahren, wie Sie den API-Schlüssel erhalten und einrichten. Das Tutorial enthält auch Beispiele für das Einrichten von Umgebungsvariablen in Datalab, DataCamps Ai-fähiges Data Notebook.

Weitere Unterstützung finden Sie im Code in der OpenAI -Funktion, die die Arbeitsmappe auf Datalab aufruft.

Upgrade der OpenAI Python -API auf V1 mit:

pip install --upgrade openai -q

Initiieren Sie danach den OpenAI -Client mit dem API -Schlüssel.

import os
from openai import OpenAI

client = OpenAI(
  api_key=os.environ['OPENAI_API_KEY'],
)

Hinweis : OpenAI bietet neuen Benutzern keine kostenlosen Credits mehr an, daher müssen Sie sie kaufen, um die API zu verwenden.

Wir werden eine zufällige Beschreibung der Schüler schreiben. Entweder können Sie Ihren eigenen Text erstellen oder Chatgpt verwenden, um einen für Sie zu generieren.

student_1_description = "David Nguyen is a sophomore majoring in computer science at Stanford University. He is Asian American and has a 3.8 GPA. David is known for his programming skills and is an active member of the university's Robotics Club. He hopes to pursue a career in artificial intelligence after graduating."

Im nächsten Teil schreiben wir eine Aufforderung, Schülerinformationen aus dem Text zu extrahieren und die Ausgabe als JSON -Objekt zurückzugeben. Wir werden den Namen, die Major, die Schule, die Noten und die Clubs in der Beschreibung der Schüler extrahieren.

# A simple prompt to extract information from "student_description" in a JSON format.
prompt1 = f'''
Please extract the following information from the given text and return it as a JSON object:

name
major
school
grades
club

This is the body of text to extract the information from:
{student_1_description}
'''

Fügen Sie die Eingabeaufforderung dem OpenAI -API -Chat -CHAT -Abschlussmodul hinzu, um die Antwort zu generieren.

# Generating response back from gpt-3.5-turbo
openai_response = client.chat.completions.create(
    model = 'gpt-3.5-turbo',
    messages = [{'role': 'user', 'content': prompt_1}]
)

openai_response.choices[0].message.content

Die Antwort ist ziemlich gut. Konvertieren wir es in JSON, um es besser zu verstehen.

'{\n  "name": "David Nguyen",\n  "major": "computer science",\n  "school": "Stanford University",\n  "grades": "3.8 GPA",\n  "club": "Robotics Club"\n}'

Wir werden die `JSON` -Bibliothek verwenden, um den Text in ein JSON -Objekt umzuwandeln.

import json

# Loading the response as a JSON object
json_response = json.loads(openai_response.choices[0].message.content)
json_response

Das Endergebnis ist ziemlich perfekt. Also, warum brauchen wir Funktionsaufrufe?

{'name': 'David Nguyen',
 'major': 'computer science',
 'school': 'Stanford University',
 'grades': '3.8 GPA',
 'club': 'Robotics Club'}

Versuchen wir dieselbe Eingabeaufforderung, aber mit einer anderen Schülerbeschreibung.

student_2_description="Ravi Patel is a sophomore majoring in computer science at the University of Michigan. He is South Asian Indian American and has a 3.7 GPA. Ravi is an active member of the university's Chess Club and the South Asian Student Association. He hopes to pursue a career in software engineering after graduating."

Wir werden einfach den Text der Schülerbeschreibung in der Eingabeaufforderung ändern.

prompt2 = f'''
Please extract the following information from the given text and return it as a JSON object:

name
major
school
grades
club

This is the body of text to extract the information from:
{student_2_description}
'''

und führen Sie die Chat -Abschlussfunktion mit der zweiten Eingabeaufforderung aus.

# Generating response back from gpt-3.5-turbo
openai_response = client.chat.completions.create(
    model = 'gpt-3.5-turbo',
    messages = [{'role': 'user', 'content': prompt_2}]
)

# Loading the response as a JSON object
json_response = json.loads(openai_response.choices[0].message.content)
json_response

Wie Sie sehen können, ist es nicht konsistent. Anstatt einen Club zurückzugeben, hat es die Liste der Clubs zurückgegeben, die von Ravi verbunden sind. Es unterscheidet sich auch vom ersten Schüler.

{'name': 'Ravi Patel',
 'major': 'computer science',
 'school': 'University of Michigan',
 'grades': '3.7 GPA',
 'club': ['Chess Club', 'South Asian Student Association']}

OpenAI -Funktion Aufrufe Beispiel

Um dieses Problem zu beheben, werden wir nun eine kürzlich eingeführte Funktion namens Function Calling verwenden. Es ist wichtig, eine benutzerdefinierte Funktion zu erstellen, um die erforderlichen Informationen zu einer Liste von Wörterbüchern hinzuzufügen, damit die OpenAI -API ihre Funktionalität verstehen kann.

  • Name : Schreiben Sie den Python -Funktionsnamen, den Sie kürzlich erstellt haben.
  • Beschreibung : Die Funktionalität der Funktion.
  • Parameter : Innerhalb der „Eigenschaften“ schreiben wir den Namen der Argumente, den Typ und die Beschreibung. Es wird helfen, die API zu eröffnen, um die Welt zu identifizieren, nach der wir suchen.

Hinweis : Stellen Sie sicher, dass Sie das richtige Muster verfolgen. Erfahren Sie mehr über Funktionsaufrufe, indem Sie die offizielle Dokumentation lesen.

pip install --upgrade openai -q

Als nächstes werden wir Antworten für zwei Schülerbeschreibungen unter Verwendung einer benutzerdefinierten Funktion generieren, die dem Argument "Funktionen" hinzugefügt wurde. Danach werden wir die Textantwort in ein JSON -Objekt umwandeln und sie drucken.

import os
from openai import OpenAI

client = OpenAI(
  api_key=os.environ['OPENAI_API_KEY'],
)

Wie wir sehen, haben wir einheitliche Ausgabe. Wir haben sogar Noten in numerischer anstelle von String erhalten. Die konsistente Ausgabe ist für das Erstellen von Fehlerfreien AI-Anwendungen unerlässlich.

student_1_description = "David Nguyen is a sophomore majoring in computer science at Stanford University. He is Asian American and has a 3.8 GPA. David is known for his programming skills and is an active member of the university's Robotics Club. He hopes to pursue a career in artificial intelligence after graduating."

Mehrere benutzerdefinierte Funktionen

Sie können der Chat -Abschlussfunktion mehrere benutzerdefinierte Funktionen hinzufügen. In diesem Abschnitt sehen wir die magischen Funktionen der OpenAI -API und wie sie automatisch die richtige Funktion auswählt und die richtigen Argumente zurückgibt.

In der Python -Liste des Wörterbuchs werden wir eine andere Funktion mit dem Namen „Extract_School_info“ hinzufügen, die uns hilft, Universitätsinformationen aus dem Text zu extrahieren.

Um dies zu erreichen, müssen Sie ein weiteres Wörterbuch einer Funktion mit Namen, Beschreibung und Parametern hinzufügen.

# A simple prompt to extract information from "student_description" in a JSON format.
prompt1 = f'''
Please extract the following information from the given text and return it as a JSON object:

name
major
school
grades
club

This is the body of text to extract the information from:
{student_1_description}
'''

Wir werden eine Beschreibung der Stanford University unter Verwendung von ChatGPT generieren, um unsere Funktion zu testen.

# Generating response back from gpt-3.5-turbo
openai_response = client.chat.completions.create(
    model = 'gpt-3.5-turbo',
    messages = [{'role': 'user', 'content': prompt_1}]
)

openai_response.choices[0].message.content

Erstellen Sie die Liste der Schüler- und Schulbeschreibungen und geben Sie sie durch die OpenAI -Chat -Abschlussfunktion, um die Antwort zu generieren. Stellen Sie sicher, dass Sie die aktualisierte benutzerdefinierte Funktion bereitgestellt haben.

'{\n  "name": "David Nguyen",\n  "major": "computer science",\n  "school": "Stanford University",\n  "grades": "3.8 GPA",\n  "club": "Robotics Club"\n}'

Das GPT-3.5-Turbo-Modell hat automatisch die richtige Funktion für verschiedene Beschreibungstypen ausgewählt. Wir erhalten eine perfekte JSON -Ausgabe für den Schüler und die Schule.

import json

# Loading the response as a JSON object
json_response = json.loads(openai_response.choices[0].message.content)
json_response

Wir können sogar unter dem Namen schauen, den die Ruhe unter Verwendung der Funktion „extract_school_info“ erzeugt.

OpenAI -Funktion Aufruf Tutorial: Erzeugen Sie strukturierte Ausgabe

Anwendungen des Funktionsaufrufs

In diesem Abschnitt erstellen wir einen stabilen Textübersichtsers zusammen, der die Schul- und Schülerinformationen auf eine bestimmte Weise zusammenfasst.

Erstens erstellen wir zwei Python -Funktionen, extract_student_info und extract_school_info, die die Argumente aus Funktionsaufrufen entnehmen und eine zusammengefasste Zeichenfolge zurückgeben.

pip install --upgrade openai -q
  1. Erstellen Sie die Python -Liste, die aus einer Beschreibung der Schüler, einer zufälligen Eingabeaufforderung und einer Beschreibung besteht. Die zufällige Eingabeaufforderung wird hinzugefügt, um den automatischen Funktionsaufruf Mechaniker zu validieren.
  2. wir generieren die Antwort mit jedem Text in der Liste "Beschreibungen".
  3. Wenn ein Funktionsaufruf verwendet wird, erhalten wir den Namen der Funktion und wenden Sie basierend darauf die entsprechenden Argumente mit der Antwort auf die Funktion an. Andernfalls geben Sie die normale Reaktion zurück.
  4. Drucken Sie die Ausgänge aller drei Proben aus.
import os
from openai import OpenAI

client = OpenAI(
  api_key=os.environ['OPENAI_API_KEY'],
)
  • Beispiel#1 : Das GPT -Modell hat "extract_student_info" ausgewählt, und wir haben eine kurze Zusammenfassung über den Schüler erhalten.
  • Beispiel#2 : Das GPT -Modell hat keine Funktion ausgewählt und die Eingabeaufforderung als regelmäßige Frage behandelt, und als Ergebnis haben wir die Biographie von Abraham Lincoln erhalten.
  • Beispiel#3 : Das GPT -Modell hat "extract_school_info" ausgewählt, und wir haben eine kurze Zusammenfassung über die Stanford University erhalten.
student_1_description = "David Nguyen is a sophomore majoring in computer science at Stanford University. He is Asian American and has a 3.8 GPA. David is known for his programming skills and is an active member of the university's Robotics Club. He hopes to pursue a career in artificial intelligence after graduating."

Schlussfolgerung

In diesem Tutorial haben wir über OpenAys Funktionsanruf erfahren. Wir haben auch gelernt, wie man es verwendet, um konsistente Ausgänge zu generieren, mehrere Funktionen zu erstellen und einen zuverlässigen Textzusammenfassungen zu erstellen.

Wenn Sie mehr über die OpenAI-API erfahren möchten, sollten Sie die Arbeit mit dem OpenAI-API-Kurs nehmen und die OpenAI-API in Python-Cheat-Blatt verwenden. Definieren Sie verschachtelte JSON -Strukturen im Funktionsschema. Durch Angeben der hierarchischen Beziehungen innerhalb der Parametereigenschaft können Sie sicherstellen, dass das Modell ordnungsgemäß verschachtelte und strukturierte JSON -Ausgänge für komplexe Datenanforderungen erzeugt. API -Aufrufe oder Datenbankabfragen basierend auf den aus dem Modell übergebenen Argumenten ausführen. Dies ermöglicht dynamische Wechselwirkungen mit externen Systemen gleichzeitig gleichzeitig konsistente und strukturierte Antworten.

Was passiert, wenn der Funktionsaufruf des Modells keine definierten Funktionen übereinstimmt? Dies gewährleistet die Flexibilität bei der Handhabung unterschiedlicher Eingabetypen.

Das obige ist der detaillierte Inhalt vonOpenAI -Funktion Aufruf Tutorial: Erzeugen Sie strukturierte Ausgabe. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn