Adapter zur Verbindung von AI LLM mit Echtzeit-Erdungsquellen und -daten
Auflistung der wichtigsten Verbesserungen
Freigeben | Datum | Hauptmerkmale |
---|---|---|
2.0.5 | 01. April 2024 | Großes Update: Unterstützt ClaudeAI zusätzlich zu OpenAI und GoogleAI. |
2.0.0 | 05. Januar 2024 | Großes Update: Unterstützt GoogleAI zusätzlich zu OpenAI. |
1.3.0 | 16. Dezember 2023 | Verbesserte Aufforderungen zur Nutzung relevanter Daten und zur Generierung relevanter Antworten. Antworten für alle Methoden liefern jetzt Laufzeitinformationen. |
1.2.9 | 03. November 2023 | (1) Die Agentenkonfiguration kann einen (optionalen) Sprachschlüssel angeben. Wenn dies festgelegt ist, denkt und antwortet LLM immer in der angegebenen Sprache (unabhängig von der Eingabesprache). Hinweis : In einigen Fällen ist die Übersetzungsqualität möglicherweise nicht optimal. Daher wird dringend empfohlen, gründliche Tests durchzuführen. (2) Die Antwort der All-in-One-Methode umfasst Erdungsdaten, die von LLM zum Generieren einer Antwort verwendet werden. Dies soll die Zuverlässigkeit verbessern. |
1.2.8 | 26. Okt. 2023 | Integrierte Deep-Dive-Prompting-Technik zur Verbesserung der Antwortqualität. |
1.2.2 | 18. Okt. 2023 | Verbesserte LLM-Eingabeaufforderungen und Logik für die API-Bestimmung. |
1.1.1 | 09. Okt. 2023 | Einführung von LLM-Eingabeaufforderungen zur Integration einer Variante konstitutioneller KI, um sicherzustellen, dass Benutzereingaben fair, verantwortungsbewusst, respektvoll und menschlich sind. |
1.1.0 | 08. Okt. 2023 | Einführung der Fähigkeit, Kontext/Gedächtnis für Folgefragen aufzubauen. |
1.0.0 | 08. Okt. 2023 | Erster Start. |
Als multimodale Modelle der künstlichen Intelligenz haben LLMs eine breite Anwendbarkeit für die Generierung von Inhalten mit minimalen Anweisungen. Aufforderungstechniken wie Zero-Shot oder Few-Shot sind bei alltäglichen Benutzern von Chat-Anwendungen, die auf solchen LLMs basieren, beliebt. Obwohl die Qualität der Antwort ausgezeichnet ist, wie sehr können wir ihr vertrauen? Woher wissen wir, dass sich das Model nicht spontan „sind“ (also halluziniert)?
Daher ist es sehr wichtig, LLMs durch die Bereitstellung kontextbezogener Daten in Kombination mit geeigneten Aufforderungstechniken zu fundieren . Die Verwendung von Eingabeaufforderungen mit fundierten Informationen als Kontext, um LLM dabei zu helfen, eine bessere Antwort zu generieren, ist eine weit verbreitete Praxis.
Ein solcher Ansatz ist Retrieval-Augmented Generation (RAG), der auf dem Speichern und Durchsuchen von Texteinbettungen basiert, die LLM zusammen mit der Eingabeaufforderung bereitgestellt werden. RAG verlässt sich jedoch auf statische Informationen, die in Texteinbettungen umgewandelt und in Diagrammdatenbanken (auch Vektordatenbanken genannt) gespeichert werden, sodass relevante Informationen daraus abgerufen und durch Grounding erweitert werden können, um Text/Antworten zu generieren .
Das RAG-Muster könnte die Frage aufwerfen, ob Echtzeitdaten zusammen mit LLMs verwendet werden können, um effektive und zuverlässige Antworten zu generieren. Die einfache Antwort lautet: „Natürlich, ja!“ . Aber das bedeutet viel mehr Verantwortung auf den Schultern der Anwendungsentwickler. Der Entwickler muss die API aufrufen, um die Antwort in eine Eingabeaufforderung zu verpacken, damit LLM eine relevante Antwort generiert. Aber wird es funktionieren, für jede Frage immer wieder dieselbe API aufzurufen? - Höchstwahrscheinlich nicht! Wie können wir anhand der Frage dynamisch bestimmen, welche API aufgerufen werden soll und welche Parameter übergeben werden müssen? Das klingt auch nach einer Fähigkeit für LLM.
Hier kommt AI-Dapter (sprich: AI-Adapter ) ins Spiel. AI-Dapter beschleunigt den LLM-basierten Anwendungsentwicklungsprozess für Entwickler und ermöglicht es ihnen, sich nur auf Anwendungen zu konzentrieren, während die Last der Folgeaktivitäten auf LLM verlagert wird.
Identifizieren der richtigen API-Endpunkte aus einem vordefinierten API-Repository,
Erfassen von Echtzeitdaten von den identifizierten API-Endpunkten,
Generieren einer Antwort mithilfe des LLM-Modells Ihrer Wahl.
Das Entwicklererlebnis wird enorm verbessert, indem das AI-Dapter-Framework in den Anwendungscode integriert und nahtlos als Blackbox verwendet wird, um LLM-basierte Antworten auf Benutzerfragen durchzuführen. Beachten Sie, dass diese Benutzerfragen selbst möglicherweise einer Zero-Shot-Eingabeaufforderung ähneln!
Die eigentliche Arbeit hinter dieser Blackbox umfasst:
die Möglichkeit, ein LLM-Modell Ihrer Wahl in Ihre Anmeldeinformationen zu integrieren (Hinweis: Derzeit werden nur OpenAI-GPT-Modelle unterstützt),
eine integrierte Engine, die Benutzereingaben nutzt, um eine Identifizierung durchzuführen von –
API-basierte Datenquellen,
Erfassung von Echtzeitdaten von diesen APIs und
Generierung von Antworten auf der Grundlage von Echtzeitdaten mithilfe von LLM.
Bitte senden Sie Feedback oder Anfragen zu neuen Funktionen über GitHub-Diskussionen.
Bitte reichen Sie Ihre Probleme über GitHub Issues ein.
Führen Sie Folgendes in der Befehlszeile aus, um den AI-Dapter für Ihr NodeJS-Projekt zu installieren. Stellen Sie sicher, dass Sie sich im Stammverzeichnis Ihres Projekts befinden.
npm install ai-dapter --save
Vorausgesetzt, Sie haben ein TypeScript-NodeJS-Projekt eingerichtet, importieren Sie die AIDapter-Klasse wie folgt.
AIDapter aus „ai-adapter“ importieren;
Um AI-Dapter zu initialisieren, müssen Sie einige obligatorische und optionale Parameter übergeben, um die Einrichtung abzuschließen. Unten sehen Sie ein Beispiel, gefolgt von einer Dokumentation der unterstützten Parameter.
const ai = new AIDapter({ „app_name“: „<>“ „Anbieter“: „OpenAI“, „Modellname“: „gpt-3.5-turbo-16k“, „endpoint“: „https://api.openai.com/v1/chat/completions“, „authentication“: {“api_key“: „< >“, „org_id“: „< >“ }, „Temperatur“: „< >“});
Liste der unterstützten Parameter zum Initialisieren des Setups.
Parameter | Obligatorisch (M) / Optional (O) | Zweck | Mögliche Werte |
---|---|---|---|
app_name | M | Kurzer App-Name. | - |
provider | M | Der Anbieter des LLM-Modells. Hinweis : Derzeit werden nur Modelle unterstützt, die direkt von OpenAI bereitgestellt werden. | „OpenAI“ |
model_name | O | Ermöglicht die Auswahl eines beliebigen vom Anbieter freigegebenen Modells. Wir empfehlen die Verwendung von Modellen, die große Token-Größen zulassen, wie z. B. gpt-3.5-turbo-16k oder gemini-pro oder claude-3-haiku-20240307 . | - |
endpoint | O | Der Endpunkt, von dem aus der Anbieter das LLM-Modell bereitstellt. Möglicherweise müssen Sie auf die anbieterspezifische Dokumentation zurückgreifen. Beispielsweise wird das OpenAI-Chat-Abschlussmodell vom Endpunkt https://api.openai.com/v1/chat/completions bereitgestellt, das GoogleAI-Modell wird von https://generativelanguage.googleapis.com/v1/models/gemini-pro:generateContent bereitgestellt. https://generativelanguage.googleapis.com/v1/models/gemini-pro:generateContent und ClaudeAI-Modell wird von https://api.anthropic.com/v1/messages bereitgestellt. | - |
authentication | M | Geben Sie die von Ihrem Anbieter angegebenen Authentifizierungsdaten an. Da OpenAI beispielsweise einen API-Schlüssel und eine Organisations-ID erfordert, werden diese in den Feldern api_key und org_id bereitgestellt, wie im obigen Initialisierungsbeispiel gezeigt. | - |
telemetry | O | Erfassung von Telemetriedaten. Der Standardwert ist wahr. | wahr/falsch |
Mit AI-Dapter können Sie bestimmte Agentenkonfigurationen anpassen, z. B. das Hinzufügen von Rollen, Persönlichkeiten usw. Ebenso können Sie bestimmte Datenkonfigurationen anpassen, z. B. die Anzahl der Datensätze aus Echtzeit-API-Antworten steuern, zusätzlichen Kontext übergeben usw Erdungsinformationen zur Simulation von Folgemaßnahmen usw.
Der Agent und die Konfigurationsoptionen werden wie folgt als einzelnes Objekt übergeben. Lesen Sie die entsprechenden Abschnitte weiter unten, um diese Konfigurationswerte nachzuschlagen und anzupassen.
let Optionen: AIDapterOptions = { „agentConfig“: { „role“: „persönlicher Assistent“ }, „dataConfig“: { „max_records“: 7 }};
Nachfolgend finden Sie die derzeit unterstützten Agent-Konfigurationsparameter. Fügen Sie diese Felder unter dem agentConfig
Objekt hinzu.
Parameter | Obligatorisch (M) / Optional (O) | Zweck | Mögliche Werte |
---|---|---|---|
role | M | Hilft bei der Herangehensweise von LLM an Benutzerfragen. In der Rolle eines Armee-Sergeanten kann LLM beispielsweise auf Fragen zur aktuellen Zeit etwa mit „Die aktuelle Zeit ist 08:01 Uhr EDT“ antworten, während ein Komiker immer einen einzeiligen Witz über meine Frage erzählt könnte etwa antworten: „Es ist Zeit für Sie, sich eine Uhr zu besorgen! Nur ein Scherz, es ist derzeit 8:01 Uhr am 7. Oktober 2023 in der Zeitzone Eastern Daylight Time (EDT).“. | - |
personality | O | Verleiht dem Ton der LLM-Antwort eine Persönlichkeit. | - |
language | O | Die Sprache, in der der Agent antworten soll, unabhängig von der Sprache, in der die Benutzerfrage gestellt wird. Standard = Englisch. | - |
expert_at | O | Wenn LLM davon ausgehen sollte, dass sie Experten auf einem bestimmten Gebiet sind, beispielsweise im Gesundheitswesen oder bei Automobilmotoren usw. | - |
max_words | O | Steuern Sie, wie lang oder kurz die Antwort von LLM sein soll. Der Standardwert beträgt weniger als 200 Wörter. | Eine beliebige Zahl zwischen 1 und 200 |
Nachfolgend sind die derzeit unterstützten Datenkonfigurationsparameter aufgeführt. Fügen Sie diese Felder unter dem dataConfig
Objekt hinzu.
Parameter | Obligatorisch (M) / Optional (O) | Zweck | Mögliche Werte |
---|---|---|---|
max_records | M | Steuert, wie viele Top-Datensätze aus einem Ergebnissatz, der aus einem Echtzeit-API-Aufruf erhalten wurde, verkauft werden sollen. Dieser Parameter ist wichtig, um die Größe des Eingabe-Tokens zu steuern, da Ergebnisse des API-Aufrufs bei der Erdung verwendet werden. Hinweis : Da nur die obersten X-Zeilen beibehalten werden, ist es am besten, API-Endpunkte bereitzustellen, die in absteigender Reihenfolge sortierte Daten enthalten. Standard = 10 | Eine beliebige Zahl zwischen 1 und 10 |
additional_context | O | Zusätzlicher Kontext kann bereitgestellt werden, wenn Follow-up-ähnliche Fähigkeiten erwartet werden. (siehe Beispiele aus 6.3. Generierung der LLM-Antwort mit Erdungs-Echtzeitdaten). | Muss ein Array mit der folgenden Struktur sein: [{ "question": "", "response_summary": "", "entities": { ... } }, { ... }] |
max_contexts | O | Behält die neuesten X-Kontexte bei. AI-Dapter behält die letzten beiden Elemente des Arrays additional_context bei, vorausgesetzt, der neueste Kontext wird immer am Ende dieses Arrays angehängt. | 1 oder 2 |
AI-Dapter bietet die folgenden drei Funktionen und daher drei Methoden für den Zugriff auf diese Funktionen.
Empfehlung: Für die beste Entwicklererfahrung siehe 6.3. Generierung einer LLM-Antwort mit fundierten Echtzeitdaten
AIDapter.getRealtimeSources(input: string, apiRepository: Types.APIRepository[]): Promise
Verwenden Sie diese Methode, wenn Ihr Ziel darin besteht, relevante API-Endpunkte basierend auf Benutzerfragen zu erhalten.
Parameter | Obligatorisch (M) / Optional (O) | Zweck | Datentyp |
---|---|---|---|
input | M | Benutzerfrage | Text |
apiRepository[] | M | Stellen Sie ein vollständiges API-Repository bereit, das Details zum API-Endpunkt (Methode, URL, Header und Daten), im API-Endpunkt verwendete Platzhalter sowie Validierungsanweisungen enthält, die LLM verwenden wird. | Siehe 7. API-Repository |
Feld | Zweck |
---|---|
api_endpoints[] | Array aller identifizierten API-Endpunkte. |
provider | Gibt an, welcher LLM-Anbieter verwendet wurde. |
runtime | Um die Gesamtantwortzeit zu verfolgen. Beachten Sie, dass dies von der API-Antwortzeit von LLM abhängt. |
// AI-Dapterimport AIDapter von „ai-adapter“ importieren und initialisieren;const ai = new AIDapter({ „Anbieter“: „GoogleAI“, „authentication“: {“api_key“: „<>“ }});// Definieren Sie das API-Repository, von dem aus eine entsprechende API identifiziert, aktualisiert und zurückgegeben wird.// Beachten Sie, dass dieses Beispiel nur ein Beispiel für einen API-Endpunkt enthält. Da es sich jedoch um ein Array handelt, sollten Sie damit rechnen, mehrere bereitzustellen solche API endpoints.const apiRepository = [ {"api_info": { "title": "Aktuelle Zeit", "description": "Identifizieren Sie den entsprechenden Zeitzonenbereich und Standort für einen bestimmten Standort und erhalten Sie die Zeit an diesem Standort."},"api_endpoint": { "method": „GET“, „url“: „http://worldtimeapi.org/api/timezone/|area_location|“, „headers“: {“Content-Type“: „application/json“ }},"placeholders": [ {"placeholder": "|area_location|","validation_criteria": "Ein Beispiel für „area_location“ ist: Amerika/New_York oder Europa/London. Bestimmen Sie basierend auf dem angegebenen gültigen Standort den geeigneten „area_location.“ ,"default": "Amerika/New_York" }] }];// Dies ist das Fragelet des Benutzers input = „Wie spät ist es in Mumbai?“// Rufen Sie nun die Methode getRealtimeSources() auf, um gültige API-Endpunkte zu erhaltenai.getRealtimeSources(input, apiRepository) .then((resp) => {console.log(resp);/* { "api_endpoints": [ { "api": { "method": "GET", "url": "https://worldtimeapi.org /api/timezone/Asia/Kolkata", "headers": { "Content-Type": "application/json" } }, "placeholders": [ { "placeholder": „[area_location]“, „determined“: true } ], „status“: „OK“ } ], „provider“: „GoogleAI“, „runtime“: „2 seconds“ } */ }).catch((err) => console.log(JSON.stringify(err, null, 4)));
Beachten Sie, dass LLM basierend auf der vom Benutzer angegebenen Stadt Mumbai den entsprechenden Wert für den Platzhalter „area_location“ ermittelt und einen aktualisierten API-Endpunkt zurückgegeben hat.
AIDapter.getDataFromRealtimeSource(input: string, apiRepository: Types.APIRepository[], dataConfig?: Types.DataConfig | undefiniert): Promise
Verwenden Sie diese Methode, wenn Ihr Ziel darin besteht, Daten von relevanten API-Endpunkten auf der Grundlage von Benutzerfragen zu erhalten.
Parameter | Obligatorisch (M) / Optional (O) | Zweck | Datentyp |
---|---|---|---|
input | M | Benutzerfrage | Text |
apiRepository[] | M | Array aus API-Informationen, Endpunkten (Methode, URL, Header und Daten) und Platzhaltern. | Siehe 7. API-Repository |
dataConfig | O | Konfigurationsparameter zur Steuerung der aus API-Aufrufen erhaltenen Daten. | Siehe 5.2. Datenkonfiguration |
Feld | Zweck |
---|---|
api_results[] | Array von Antworten aller API-Aufrufe. |
provider | Gibt an, welcher LLM-Anbieter verwendet wurde. |
runtime | Um die Gesamtantwortzeit zu verfolgen. Beachten Sie, dass dies von der API-Antwortzeit von LLM abhängt. |
// AI-Dapterimport AIDapter von „ai-adapter“ importieren und initialisieren;const ai = new AIDapter({ „Anbieter“: „GoogleAI“, „authentication“: {“api_key“: „<>“ }});// Definieren Sie das API-Repository, von dem aus eine entsprechende API identifiziert, aktualisiert und zurückgegeben wird.// Beachten Sie, dass dieses Beispiel nur ein Beispiel für einen API-Endpunkt enthält. Da es sich jedoch um ein Array handelt, sollten Sie damit rechnen, mehrere bereitzustellen solche API endpoints.const apiRepository = [ {"api_info": { "title": "Aktuelle Zeit", "description": "Identifizieren Sie den entsprechenden Zeitzonenbereich und Standort für einen bestimmten Standort und erhalten Sie die Zeit an diesem Standort."},"api_endpoint": { "method": „GET“, „url“: „http://worldtimeapi.org/api/timezone/|area_location|“, „headers“: {“Content-Type“: „application/json“ }},"placeholders": [ {"placeholder": "|area_location|","validation_criteria": "Ein Beispiel für „area_location“ ist: Amerika/New_York oder Europa/London. Bestimmen Sie basierend auf dem angegebenen gültigen Standort den geeigneten „area_location.“ ,"default": "Amerika/New_York" }] }];// Dies ist die Frage des Benutzers.let input = „Wie spät ist es in Mumbai?“// Datenkonfigurationlet dataConfig = { „max_records“: 3 }// Rufen Sie nun die Methode getDataFromRealtimeSource() auf, um alle relevanten Aufrufdaten zu erhalten API-Endpunkte basierend auf der Benutzerfrageai.getDataFromRealtimeSource(question, apiRepository, dataConfig) .then((resp) => {console.log(resp);/* { "api_results": [ { "api_sources": "worldtimeapi.org", "data": { "abbreviation": "IST", "client_ip ": "50.126.214.61", "datetime": „2024-01-05T22:48:30.316887+05:30“, „day_of_week“: 5, „day_of_year“: 5, „dst“: false, „dst_from“: null, „dst_offset“: 0, „dst_until“: null, „raw_offset“: 19800, „timezone“: „Asien/Kolkata“, „unixtime“: 1704475110, „utc_datetime“: „2024-01-05T17:18:30.316887+00:00“, „utc_offset“: „+05:30“, „week_number“: 1 } } ], „provider“: „GoogleAI“, „runtime“: „4 Sekunden“ } */ }).catch((err) => console.log(JSON.stringify(err, null, 4)));
Antwort vom API-Aufruf. Diese Daten können für die LLM-Erdung verwendet werden.
AIDapter.getLLMResponseFromRealtimeSources(input: string, apiRepository: Types.APIRepository[], Optionen?: AIDapterOptions | undefiniert): Promise
Verwenden Sie diese Methode, wenn Ihr Ziel darin besteht, LLM-Antworten auf der Grundlage von Benutzerfragen zu erhalten. Dazu gehört das Identifizieren relevanter API-Endpunkte, das Aufrufen der identifizierten APIs und deren Verwendung in der LLM-Eingabeaufforderung, um die Antwort von LLM zu erhalten.
Empfehlung: Nutzen Sie diese Methode, um Ihren Anwendungsentwicklungsprozess maximal zu beschleunigen.
Parameter | Obligatorisch (M) / Optional (O) | Zweck | Datentyp |
---|---|---|---|
input | M | Benutzerfrage | Text |
apiRepository[] | M | Array aus API-Informationen, Endpunkten (Methode, URL, Header und Daten) und Platzhaltern. | Siehe 7. API-Repository |
options | O | Agenten- und Datenkonfiguration | Siehe 5. Agent- und Datenkonfigurationsoptionen |
Feld | Zweck |
---|---|
ai_response | LLM hat eine Antwort generiert. |
ai_status | Hilft festzustellen, ob die Antwort auf der Verfügbarkeit aller erforderlichen Datenelemente für erfolgreiche API-Aufrufe basierte. Mögliche Werte: OK, FOLLOW-UP oder UNVOLLSTÄNDIG |
ai_context | Diese enthält eine kurze Antwortzusammenfassung und eine Liste der Entitäten. Die Idee hinter diesem Feld sind Anwendungsfälle mit Folgegesprächen. Das gesamte Objekt kann als additional_content innerhalb der dataConfig -Optionen übergeben werden, wenn Folgefragen übermittelt werden sollen. |
provider | Gibt an, welcher LLM-Anbieter verwendet wurde. |
runtime | Um die Gesamtantwortzeit zu verfolgen. Beachten Sie, dass dies von der API-Antwortzeit von LLM abhängt. |
// AI-Dapterimport AIDapter von „ai-adapter“ importieren und initialisieren;const ai = new AIDapter({ „Anbieter“: „GoogleAI“, „authentication“: {“api_key“: „<>“ }});// Definieren Sie das API-Repository, von dem aus eine entsprechende API identifiziert, aktualisiert und zurückgegeben wird.// Beachten Sie, dass dieses Beispiel nur ein Beispiel für einen API-Endpunkt enthält. Da es sich jedoch um ein Array handelt, sollten Sie damit rechnen, mehrere bereitzustellen solche API endpoints.const apiRepository = [ {"api_info": { "title": "Aktuelle Zeit", "description": "Identifizieren Sie den entsprechenden Zeitzonenbereich und Standort für einen bestimmten Standort und erhalten Sie die Zeit an diesem Standort."},"api_endpoint": { "method": „GET“, „url“: „http://worldtimeapi.org/api/timezone/|area_location|“, „headers“: {“Content-Type“: „application/json“ }},"placeholders": [ {"placeholder": "|area_location|","validation_criteria": "Ein Beispiel für „area_location“ ist: Amerika/New_York oder Europa/London. Bestimmen Sie basierend auf dem angegebenen gültigen Standort den geeigneten „area_location.“ ,"default": "Amerika/New_York" }] }];// Dies ist die Fragelet-Eingabe des Benutzers = „Wie spät ist es in Mumbai?“// AI-Dapter-Optionen, die kombinierte Agentenkonfigurations- und Datenkonfigurationsoptionen bereitstellen: AIDapterOptions = { „agentConfig“: { „role“: „Komiker, der immer einen einzeiligen Witz über meine Frage erzählt“ }, "dataConfig": { "max_records": 7 }};// Rufen Sie nun die Methode getLLMResponseFromRealtimeSources() auf, um eine LLM-Antwort auf die Benutzerfrage zu erhalten.// Die LLM-Antwort basiert auf einer Eingabeaufforderung, die Echtzeitdaten zur Erdung verwendet. ai.getLLMResponseFromRealtimeSources(question, apiRepository, options) .then((resp) => {console.log(resp);/* { "ai_response": "In der pulsierenden Stadt Mumbai, wo Bollywood-Träume wahr werden und der Duft von Streetfood die Luft erfüllt, sind es derzeit 22: 50 an diesem fabelhaften Freitag, dem 5. Januar 2024. Egal, ob Sie im Gateway of India einen Chai schlürfen oder in einem örtlichen Tanzclub zu den Beats tanzen, Denken Sie daran, die Zeit wartet auf niemanden, nicht einmal auf die größten Bollywood-Stars!“, „ai_status“: „OK“, „ai_context“: { „questions“: „Wie spät ist es in Mumbai? Wie ist das aktuelle Datum in Mumbai? ?", "entities": [], "data": [ { "abbreviation": "IST", "client_ip": "50.126.214.61", "datetime": „2024-01-05T22:50:51.261990+05:30“, „day_of_week“: 5, „day_of_year“: 5, „dst“: false, „dst_from“: null, „dst_offset“: 0, „dst_until“: null, „raw_offset“: 19800, „timezone“: „Asien/Kolkata“, „unixtime“: 1704475251, „utc_datetime“: „2024-01-05T17:20:51.261990+00:00“, „utc_offset“: „+05:30“, „week_number“: 1 } ] , „Quellen“: [ „worldtimeapi.org“ ] }, „provider“: „GoogleAI“, „runtime“: „6 Sekunden“ } */ }).catch((err) => console.log(JSON.stringify(err, null, 4)));
Beachten Sie, dass die Benutzerfrage zunächst verwendet wird, um relevante APIs aus dem bereitgestellten API-Repository zu identifizieren. Diese Methode ruft auch die identifizierten APIs auf, sammelt ihre Antworten, um die endgültige LLM-Eingabeaufforderung zu untermauern, und gibt die generierte Antwort zurück.
Beachten Sie außerdem, dass die Antwort den von LLM generierten Inhalt im Feld ai_response
und den Kontext im Feld ai_context
enthält. Der gesamte Kontext kann zusammen mit Folgefragen als dataConfig.additional_context
übergeben werden.
Ein Beispiel zeigt, wie der Kontext übergeben werden kann, um Folgegespräche zu ermöglichen.
// Wie im vorherigen Beispiel gezeigt, enthält ai_context die folgenden Informationen: // --------------------------------- --------------------------------------------// resp.ai_context: {// "questions": "Wie spät ist es in Mumbai? Wie ist das aktuelle Datum in Mumbai?",// "entities": [],// "data": [// {// "abbreviation": „IST“,// „client_ip“: „50.126.214.61“,// „datetime“: „2024-01-05T22:50:51.261990+05:30“,// „day_of_week“: 5,// „day_of_year“: 5,// „dst“: false,// "dst_from": null,// "dst_offset": 0,// „dst_until“: null,// „raw_offset“: 19800,// „timezone“: „Asien/Kolkata“,// „unixtime“: 1704475251,// „utc_datetime“: „2024-01-05T17:20:51.261990 +00:00",// "utc_offset": "+05:30",// "week_number": 1// }// ],// "sources": [// "worldtimeapi.org"// ]// }// ------- -------------------------------------------------- --------------------// Hängen Sie den obigen Kontext an dataConfig.additional_context an ...if(options.dataConfig[additional_context]){