function calling (German translation)
parent
0a033ee0b4
commit
84360f685d
@ -1,9 +1,46 @@
|
||||
# Prompting-Anwendungen
|
||||
# LLM-Anwendungen
|
||||
|
||||
import { Callout } from 'nextra-theme-docs'
|
||||
import { Callout } from 'nextra-theme-docs';
|
||||
|
||||
In diesem Abschnitt werden wir einige fortgeschrittene und interessante Methoden besprechen, wie wir Prompting nutzen können, um nützliche und anspruchsvollere Aufgaben zu bewältigen.
|
||||
import { Cards, Card } from 'nextra-theme-docs';
|
||||
import { FilesIcon } from 'components/icons';
|
||||
|
||||
<Callout emoji="⚠️">
|
||||
Dieser Abschnitt befindet sich in intensiver Entwicklung.
|
||||
</Callout>
|
||||
In diesem Abschnitt werden wir einige fortgeschrittene und interessante Methoden besprechen, wie wir Prompt-Engineering nutzen können, um nützliche und anspruchsvollere Aufgaben mit LLMs (große Sprachmodelle) zu bewältigen.
|
||||
|
||||
<Cards>
|
||||
<Card
|
||||
icon={<FilesIcon />}
|
||||
title="Funktionsaufrufe"
|
||||
href="/applications/function_calling"
|
||||
/>
|
||||
<Card
|
||||
icon={<FilesIcon />}
|
||||
title="Generierung von Daten"
|
||||
href="/applications/generating"
|
||||
/>
|
||||
<Card
|
||||
icon={<FilesIcon />}
|
||||
title="Generierung eines synthetischen Datensatzes für RAG"
|
||||
href="/applications/synthetic_rag"
|
||||
/>
|
||||
<Card
|
||||
icon={<FilesIcon />}
|
||||
title="Umgang mit generierten Datensätzen und deren Vielfalt"
|
||||
href="/applications/generating_textbooks"
|
||||
/>
|
||||
<Card
|
||||
icon={<FilesIcon />}
|
||||
title="Codegenerierung"
|
||||
href="/applications/coding"
|
||||
/>
|
||||
<Card
|
||||
icon={<FilesIcon />}
|
||||
title="Fallstudie zur Klassifizierung von Absolventenjobs"
|
||||
href="/applications/workplace_casestudy"
|
||||
/>
|
||||
<Card
|
||||
icon={<FilesIcon />}
|
||||
title="Prompt-Funktion"
|
||||
href="/applications/pf"
|
||||
/>
|
||||
</Cards>
|
||||
|
@ -1,8 +1,9 @@
|
||||
{
|
||||
"generating": "Generierung von Daten",
|
||||
"synthetic_rag": "Generierung eines synthetischen Datensatzes für RAG",
|
||||
"generating_textbooks": "Umgang mit generierten Datensätzen und deren Vielfalt",
|
||||
"coding": "Codegenerierung",
|
||||
"workplace_casestudy": "Fallstudie zur Klassifizierung von Absolventenjobs",
|
||||
"pf": "Prompt-Funktion"
|
||||
"function_calling": "Funktionsaufrufe",
|
||||
"generating": "Generierung von Daten",
|
||||
"synthetic_rag": "Generierung eines synthetischen Datensatzes für RAG",
|
||||
"generating_textbooks": "Umgang mit generierten Datensätzen und deren Vielfalt",
|
||||
"coding": "Codegenerierung",
|
||||
"workplace_casestudy": "Fallstudie zur Klassifizierung von Absolventenjobs",
|
||||
"pf": "Prompt-Funktion"
|
||||
}
|
||||
|
@ -1,3 +1,120 @@
|
||||
# Function Calling with LLMs
|
||||
# Funktionsaufrufe mit LLMs
|
||||
|
||||
This page needs a translation! Feel free to contribute a translation by clicking the `Edit this page` button on the right.
|
||||
## Erste Schritte beim Funktionsaufruf
|
||||
|
||||
Funktionsaufrufe bilden die Fähigkeit, LLMs zuverlässig mit externen Tools zu verbinden, um eine effektive Nutzung von Werkzeugen und die Interaktion mit externen APIs zu ermöglichen.
|
||||
|
||||
LLMs wie GPT-4 und GPT-3.5 wurden feinabgestimmt, um zu erkennen, wann eine Funktion aufgerufen werden muss, und geben dann JSON aus, das Argumente zum Aufruf der Funktion enthält. Die Funktionen, die durch Funktionsaufrufe aufgerufen werden, dienen als Werkzeuge in Ihrer KI-Anwendung, und Sie können in einer einzelnen Anfrage mehr als eine definieren.
|
||||
|
||||
Der Funktionsaufruf ist eine wichtige Fähigkeit für den Aufbau von LLM-betriebenen Chatbots oder Agenten, die Kontext für ein LLM abrufen oder mit externen Tools interagieren müssen, indem sie natürliche Sprache in API-Aufrufe umwandeln.
|
||||
|
||||
Durch den Funktionsaufruf können Entwickler folgendes erstellen:
|
||||
|
||||
- Konversationsagenten, die externe Werkzeuge effizient nutzen können, um Fragen zu beantworten. Zum Beispiel wird die Anfrage „Wie ist das Wetter in Belize?“ in einen Funktionsaufruf wie `get_current_weather(location: string, unit: 'celsius' | 'fahrenheit')` umgewandelt
|
||||
- LLM-getriebene Lösungen zum Extrahieren und Taggen von Daten (z. B. Extrahieren von Personennamen aus einem Wikipedia-Artikel)
|
||||
- Anwendungen, die natürliche Sprache in API-Aufrufe oder gültige Datenbankabfragen umwandeln können
|
||||
- Konversationswissenssuchmaschinen, die mit einer Wissensdatenbank interagieren
|
||||
|
||||
In diesem Leitfaden zeigen wir, wie Sie Modelle wie GPT-4 und Open-Source-Modelle dazu auffordern können, für verschiedene Anwendungsfälle Funktionsaufrufe auszuführen.
|
||||
|
||||
## Funktionsaufrufe mit GPT-4
|
||||
|
||||
Als einfaches Beispiel nehmen wir an, wir hätten das Modell gebeten, das Wetter an einem bestimmten Ort herauszufinden.
|
||||
|
||||
Das LLM allein könnte auf diese Anfrage nicht antworten, da es auf einem Datensatz mit einem Stichtag trainiert wurde. Die Lösung dafür ist, das LLM mit einem externen Tool zu kombinieren. Sie können die Funktionsaufruffähigkeiten des Modells nutzen, um eine externe Funktion zu bestimmen, die aufgerufen werden soll, zusammen mit ihren Argumenten, und dann eine abschließende Antwort zurückgeben lassen. Unten finden Sie ein einfaches Beispiel, wie Sie dies mit den OpenAI APIs erreichen können.
|
||||
|
||||
Nehmen wir an, ein Nutzer stellt dem Modell folgende Frage:
|
||||
|
||||
```
|
||||
Wie ist das Wetter in London?
|
||||
```
|
||||
|
||||
Um diese Anfrage mit Funktionsaufrufen zu bearbeiten, ist der erste Schritt, eine Wetterfunktion oder einen Satz von Funktionen zu definieren, die Sie als Teil einer Anfrage an die OpenAI-API weitergeben werden:
|
||||
|
||||
```python
|
||||
tools = [
|
||||
{
|
||||
"type": "function",
|
||||
"function": {
|
||||
"name": "get_current_weather",
|
||||
"description": "Get the current weather in a given location",
|
||||
"parameters": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"location": {
|
||||
"type": "string",
|
||||
"description": "The city and state, e.g. San Francisco, CA",
|
||||
},
|
||||
"unit": {
|
||||
"type": "string",
|
||||
"enum": ["celsius", "fahrenheit"]},
|
||||
},
|
||||
"required": ["location"],
|
||||
},
|
||||
},
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
Die Funktion `get_current_weather` gibt das aktuelle Wetter an einem gegebenen Ort zurück. Wenn Sie diese Funktionsdefinition als Teil der Anfrage übergeben, wird nicht tatsächlich eine Funktion ausgeführt, sondern es wird lediglich ein JSON-Objekt zurückgegeben, das die Argumente enthält, die zum Aufrufen der Funktion benötigt werden. Hier sind einige Code-Schnipsel, wie Sie dies erreichen können.
|
||||
|
||||
Sie können eine Completion-Funktion wie folgt definieren:
|
||||
|
||||
```python
|
||||
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].message
|
||||
```
|
||||
|
||||
So können Sie die Nutzerfrage zusammensetzen:
|
||||
|
||||
```python
|
||||
messages = [
|
||||
{
|
||||
"role": "user",
|
||||
"content": "Wie ist das Wetter in London?"
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
Schließlich können Sie den oben stehenden `get_completion` aufrufen und dabei sowohl die `messages` als auch die `tools` übergeben:
|
||||
|
||||
```python
|
||||
response = get_completion(messages, tools=tools)
|
||||
```
|
||||
|
||||
Das `response`-Objekt enthält Folgendes:
|
||||
|
||||
```python
|
||||
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')])
|
||||
```
|
||||
|
||||
Insbesondere enthält das `arguments`-Objekt die wichtigen Argumente, die vom Modell extrahiert wurden und die benötigt werden, um die Anfrage abzuschließen.
|
||||
|
||||
Anschließend können Sie entscheiden, eine externe Wetter-API für das tatsächliche Wetter zu nutzen. Sobald Sie die Wetterinformationen zur Verfügung haben, können Sie diese zurück an das Modell geben, um eine abschließende Antwort auf die ursprüngliche Nutzerfrage zusammenzufassen.
|
||||
|
||||
Hier ist ein [Notebook](https://github.com/dair-ai/Prompt-Engineering-Guide/blob/main/notebooks/pe-function-calling.ipynb) mit einem einfachen Beispiel, das zeigt, wie man Funktionsaufrufe mit den OpenAI APIs verwendet.
|
||||
|
||||
## Funktionsaufrufe mit Open-Source-LLMs
|
||||
|
||||
Weitere Hinweise zu Funktionsaufrufen mit Open-Source-LLMs folgen in Kürze...
|
||||
|
||||
## Anwendungsfälle für Funktionsaufrufe
|
||||
|
||||
Weitere Anwendungsfälle für Funktionsaufrufe folgen in Kürze...
|
||||
|
||||
## Referenzen
|
||||
|
||||
- [Fireworks Raises the Quality Bar with Function Calling Model and API Release](https://blog.fireworks.ai/fireworks-raises-the-quality-bar-with-function-calling-model-and-api-release-e7f49d1e98e9)
|
||||
- [Benchmarking Agent Tool Use and Function Calling](https://blog.langchain.dev/benchmarking-agent-tool-use/)
|
||||
- [Function Calling](https://ai.google.dev/docs/function_calling)
|
||||
- [Interacting with APIs](https://python.langchain.com/docs/use_cases/apis)
|
||||
- [OpenAI's Function Calling](https://platform.openai.com/docs/guides/function-calling)
|
||||
- [How to call functions with chat models](https://cookbook.openai.com/examples/how_to_call_functions_with_chat_models)
|
||||
- [Pushing ChatGPT's Structured Data Support To Its Limits](https://minimaxir.com/2023/12/chatgpt-structured-data/)
|
||||
|
@ -1,10 +1,25 @@
|
||||
# Modelle
|
||||
|
||||
import { Callout } from 'nextra-theme-docs'
|
||||
import { Callout } from 'nextra-theme-docs';
|
||||
import { Cards, Card } from 'nextra-theme-docs';
|
||||
import { FilesIcon } from 'components/icons';
|
||||
|
||||
In diesem Abschnitt werden wir einige der neuesten Sprachmodelle behandeln und wie sie die neuesten und fortschrittlichsten Techniken im Prompting erfolgreich anwenden. Zusätzlich gehen wir auf die Fähigkeiten dieser Modelle bei einer Reihe von Aufgaben und Prompting-Setups ein, wie etwa Few-Shot Prompting, Zero-Shot Prompting und Chain-of-Thought Prompting. Das Verständnis dieser Fähigkeiten ist wichtig, um die Grenzen dieser Modelle zu verstehen und wie man sie effektiv einsetzt.
|
||||
|
||||
<Callout emoji="⚠️">
|
||||
Dieser Abschnitt ist in intensiver Bearbeitung.
|
||||
</Callout>
|
||||
|
||||
<Cards>
|
||||
<Card icon={<FilesIcon />} title="Flan" href="/models/flan" />
|
||||
<Card icon={<FilesIcon />} title="ChatGPT" href="/models/chatgpt" />
|
||||
<Card icon={<FilesIcon />} title="LLaMA" href="/models/llama" />
|
||||
<Card icon={<FilesIcon />} title="GPT-4" href="/models/gpt-4" />
|
||||
<Card
|
||||
icon={<FilesIcon />}
|
||||
title="Mistral 7B"
|
||||
href="/models/mistral-7b"
|
||||
/>
|
||||
<Card icon={<FilesIcon />} title="Gemini" href="/models/gemini" />
|
||||
<Card
|
||||
icon={<FilesIcon />}
|
||||
title="LLM-Sammlung"
|
||||
href="/models/collection"
|
||||
/>
|
||||
</Cards>
|
||||
|
@ -1,11 +1,27 @@
|
||||
# Risiken & Missbrauch
|
||||
|
||||
import { Callout } from 'nextra-theme-docs'
|
||||
import { Callout } from 'nextra-theme-docs';
|
||||
import { Cards, Card } from 'nextra-theme-docs';
|
||||
import { FilesIcon } from 'components/icons';
|
||||
|
||||
Wir haben bereits gesehen, wie effektiv gut gestaltete Prompts für verschiedene Aufgaben sein können, die Techniken wie Few-Shot-Learning und Chain-of-Thought-Prompting verwenden. Wenn wir darüber nachdenken, auf der Basis von LLMs reale Anwendungen zu entwickeln, wird es entscheidend, über den Missbrauch, Risiken und Sicherheitspraktiken im Umgang mit Sprachmodellen nachzudenken.
|
||||
Gut formulierte Prompts können zu effektivem Einsatz von LLMs für verschiedene Aufgaben unter Verwendung von Techniken wie Few-Shot-Learning und Chain-of-Thought-Prompts führen. Sobald Sie darüber nachdenken, reale Anwendungen auf Basis von LLMs zu entwickeln, wird es auch entscheidend, über Missbräuche, Risiken und Sicherheitspraktiken im Zusammenhang mit Sprachmodellen nachzudenken.
|
||||
|
||||
Dieser Abschnitt konzentriert sich darauf, einige der Risiken und Missbräuche von LLMs durch Techniken wie Prompt-Injektionen hervorzuheben. Er beleuchtet auch schädliche Verhaltensweisen und wie man sie möglicherweise durch effektive Prompting-Techniken abmildern kann. Andere interessante Themen umfassen Allgemeingültigkeit, Kalibrierung, Voreingenommenheiten, soziale Verzerrungen und Faktualität, um nur einige zu nennen.
|
||||
Dieser Abschnitt konzentriert sich darauf, einige der Risiken und Missbräuche von LLMs mittels Techniken wie Prompt-Injektionen hervorzuheben. Es beleuchtet auch schädliche Verhaltensweisen und wie diese möglicherweise durch effektive Prompting-Techniken und Tools wie Moderations-APIs gemildert werden können. Andere interessante Themen umfassen Allgemeingültigkeit, Kalibrierung, Voreingenommenheiten, soziale Verzerrungen und Faktentreue, um nur einige zu nennen.
|
||||
|
||||
<Callout emoji="⚠️">
|
||||
Dieser Abschnitt befindet sich in intensiver Entwicklung.
|
||||
</Callout>
|
||||
<Cards>
|
||||
<Card
|
||||
icon={<FilesIcon />}
|
||||
title="Adversariales Prompting"
|
||||
href="/risks/adversarial"
|
||||
/>
|
||||
<Card
|
||||
icon={<FilesIcon />}
|
||||
title="Faktentreue"
|
||||
href="/risks/factuality"
|
||||
/>
|
||||
<Card
|
||||
icon={<FilesIcon />}
|
||||
title="Verzerrungen (biases)"
|
||||
href="/risks/biases"
|
||||
/>
|
||||
</Cards>
|
||||
|
@ -1,5 +1,87 @@
|
||||
# Prompting-Techniken
|
||||
|
||||
Bis zu diesem Punkt sollte klar sein, dass es hilft, Prompts zu verbessern, um bessere Ergebnisse bei verschiedenen Aufgaben zu erzielen. Das ist die gesamte Idee hinter dem Prompt Engineering.
|
||||
import { Cards, Card } from 'nextra-theme-docs';
|
||||
import {
|
||||
CardsIcon,
|
||||
OneIcon,
|
||||
WarningIcon,
|
||||
FilesIcon,
|
||||
} from 'components/icons';
|
||||
|
||||
Während die grundlegenden Beispiele unterhaltsam waren, behandeln wir in diesem Abschnitt fortgeschrittenere Prompting-Engineering-Techniken, die es uns ermöglichen, komplexere und interessantere Aufgaben zu bewältigen.
|
||||
Das Prompt-Engineering hilft dabei, Prompts effektiv zu gestalten und zu verbessern, um bessere Ergebnisse bei verschiedenen Aufgaben mit LLMs zu erzielen.
|
||||
|
||||
Während die vorherigen grundlegenden Beispiele unterhaltsam waren, behandeln wir in diesem Abschnitt fortgeschrittenere Techniken des Prompt-Engineerings, die es uns ermöglichen, komplexere Aufgaben zu bewältigen und die Zuverlässigkeit und Leistung von LLMs zu verbessern.
|
||||
|
||||
<Cards>
|
||||
<Card
|
||||
icon={<FilesIcon />}
|
||||
title="Zero-Shot Prompting"
|
||||
href="/techniques/zeroshot"
|
||||
/>
|
||||
<Card
|
||||
icon={<FilesIcon />}
|
||||
title="Few-Shot Prompting"
|
||||
href="/techniques/fewshot"
|
||||
/>
|
||||
<Card
|
||||
icon={<FilesIcon />}
|
||||
title="Chain-of-Thought Prompting"
|
||||
href="/techniques/cot"
|
||||
/>
|
||||
<Card
|
||||
icon={<FilesIcon />}
|
||||
title="Selbstkonsistenz"
|
||||
href="/techniques/consistency"
|
||||
/>
|
||||
<Card
|
||||
icon={<FilesIcon />}
|
||||
title="Generiertes Wissens-Prompting"
|
||||
href="/techniques/knowledge"
|
||||
/>
|
||||
<Card
|
||||
icon={<FilesIcon />}
|
||||
title="Tree of Thoughts Prompting"
|
||||
href="/techniques/tot"
|
||||
/>
|
||||
<Card
|
||||
icon={<FilesIcon />}
|
||||
title="Retrieval Augmented Generation"
|
||||
href="/techniques/rag"
|
||||
/>
|
||||
<Card
|
||||
icon={<FilesIcon />}
|
||||
title="Automatic Reasoning and Tool-Use"
|
||||
href="/techniques/art"
|
||||
/>
|
||||
<Card
|
||||
icon={<FilesIcon />}
|
||||
title="Automatic Prompt Engineer"
|
||||
href="/techniques/ape"
|
||||
/>
|
||||
<Card
|
||||
icon={<FilesIcon />}
|
||||
title="Active-Prompt"
|
||||
href="/techniques/activeprompt"
|
||||
/>
|
||||
<Card
|
||||
icon={<FilesIcon />}
|
||||
title="Direct Stimulus Prompting"
|
||||
href="/techniques/dsp"
|
||||
/>
|
||||
<Card
|
||||
icon={<FilesIcon />}
|
||||
title="Program-Aided Language"
|
||||
href="/techniques/pal"
|
||||
/>
|
||||
<Card icon={<FilesIcon />} title="ReAct" href="/techniques/react" />
|
||||
<Card
|
||||
icon={<FilesIcon />}
|
||||
title="Multimodal CoT"
|
||||
href="/techniques/multimodalcot"
|
||||
/>
|
||||
<Card
|
||||
icon={<FilesIcon />}
|
||||
title="Graph-Prompting"
|
||||
href="/techniques/graph"
|
||||
/>
|
||||
</Cards>
|
||||
|
Loading…
Reference in New Issue