Add tool calling task
This commit is contained in:
@@ -0,0 +1,55 @@
|
|||||||
|
# Aufgabe 02: Tool Calling simulieren
|
||||||
|
|
||||||
|
## Ziel
|
||||||
|
|
||||||
|
Du lernst, wie ein LLM nicht nur Text erzeugt, sondern Aktionen auslösen kann.
|
||||||
|
|
||||||
|
## Szenario
|
||||||
|
|
||||||
|
Der User fragt:
|
||||||
|
|
||||||
|
```text
|
||||||
|
Wie viele Personen sind im Raum?
|
||||||
|
```
|
||||||
|
|
||||||
|
Das LLM soll nicht raten, sondern ein Tool anfordern:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"tool": "count_people",
|
||||||
|
"arguments": {}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Aufgabe
|
||||||
|
|
||||||
|
Baue ein Programm mit mindestens 3 Tools:
|
||||||
|
|
||||||
|
- `get_time()`
|
||||||
|
- `count_people()` - erstmal fake: gibt z. B. `2` zurück
|
||||||
|
- `look(direction)` - erstmal fake: gibt `looked left` zurück
|
||||||
|
|
||||||
|
Das Programm soll:
|
||||||
|
|
||||||
|
1. User-Input entgegennehmen
|
||||||
|
2. LLM entscheiden lassen, ob ein Tool nötig ist
|
||||||
|
3. Tool ausführen
|
||||||
|
4. Ergebnis zurück ans LLM geben
|
||||||
|
5. finale Antwort ausgeben
|
||||||
|
|
||||||
|
## Lernpunkte
|
||||||
|
|
||||||
|
- Warum Tool Calling für Robotik zentral ist
|
||||||
|
- Warum ein LLM nicht direkt Motoren steuern sollte
|
||||||
|
- Wie man Tools typisiert und validiert
|
||||||
|
- Wie man gefährliche Aktionen begrenzt
|
||||||
|
|
||||||
|
## Akzeptanzkriterien
|
||||||
|
|
||||||
|
- Frage nach Uhrzeit ruft `get_time()` auf.
|
||||||
|
- Frage nach Personen ruft `count_people()` auf.
|
||||||
|
- Befehl "schau nach links" ruft `look("left")` auf.
|
||||||
|
|
||||||
|
## Erweiterung
|
||||||
|
|
||||||
|
Logge jeden Tool-Call mit Timestamp, Argumenten und Ergebnis.
|
||||||
Reference in New Issue
Block a user