Dieses Repo enthält Demonstrationen von IBM watsonx, der für Unternehmen entwickelten KI- und Datenplattform von IBM.
Die Beispiel-KI-Anwendung in diesem Repo nutzt die folgenden Hauptkomponenten:
Als Beispielszenario wird die Kundenbetreuung eines Telekommunikationsunternehmens herangezogen. Menschliche Agenten sprechen mit Kunden, um ihre Probleme zu lösen. Die menschlichen Agenten werden von digitalen Agenten unterstützt, um die notwendigen Korrekturen so weit wie möglich zu automatisieren.
Hier ist eine Abschrift eines Gesprächs mit einem Kunden, der ein Problem mit dem WLAN-Router hat:
John (Teltop Customer Care Agent): Hello, this is John from Teltop customer care. How
can I assist you today?
Mary (Disappointed Subscriber): Hi John, it's Mary again. I've been having a nightmare
with your service. My home Wi-Fi is acting up, and the TV service over fiber is
terrible.
John: I'm sorry to hear about the troubles you're facing at home, Mary. Let's address
these issues. Can you please provide me with your account number or the phone number
associated with your account?
Mary: Sure, it's 123-555-1234.
[...]
John: Mary, it appears there are some issues with your router. We need to update the
router software.
In diesem Beispiel kann die Software von Routern aus der Ferne und automatisch aktualisiert werden. Gelingt dies erfolgreich, werden E-Mails an die Kunden versendet.
Transkriptionen von Telefongesprächen können über Speech-to-Text-Dienste erfolgen. Das Asset umfasst die folgenden drei Schritte, die nacheinander ausgeführt werden. Um Router zu aktualisieren und E-Mails zu versenden, werden Tools aufgerufen.
Schauen wir uns Schritt (2) genauer an. Wenn die Transkriptzusammenfassung als Korrekturmaßnahme „Router-Update“ enthält, versteht der Agent, dass er ein Tool mit der Telefonnummer des Kunden als Eingabe aufrufen muss.
Agent UpdateRouterIfNecessary LLM Output:
{
generated_text: 'Question: Update the router for Mary (123-555-1234) based on the
transcript summary.n' +
'Thought: I need to update the router for Mary (123-555-1234) based on the
transcript summary, so I will use the RouterUpdate tool.n' +
'Tool Name: RouterUpdaten' +
'Tool Caption: Updating router software for Mary (123-555-1234)n' +
'Tool Input: {"phoneNumber":"123-555-1234"}n' +
'Tool Output: ',
generated_token_count: 4465,
input_token_count: 1271,
stop_reason: 'not_finished'
}
Die Agenten wurden mit dem Bee Agent Framework in TypeScript implementiert. Das Framework wurde von IBM Research entwickelt und ist als Open Source verfügbar. Der folgende Ausschnitt zeigt die Definition des Router-Tools, das beim Aufruf der Large Language Models in die Eingabeaufforderung eingefügt wird.
export class RouterUpdateTool extends Tool <
RouterUpdateToolOutput , RouterUpdateToolOptions , RouterUpdateToolRunOptions > {
name = "RouterUpdate" ;
description = "Updates the software of routers remotely for a subscriber " +
"with a certain phone number." ;
inputSchema ( ) {
return z . object ( {
phoneNumber : z
. string ( { description : `Phone number of a subscriber, for example '123-456-7890'` } )
. min ( 1 )
. max ( 40 ) ,
} ) ;
}
Anstatt die Tool-Ausgabe zu halluzinieren, stoppt der Agent den Stream vom LLM nach „Tool Output:“ und führt stattdessen das Tool aus.
Agent UpdateRouterIfNecessary (tool_input) ? : {"phoneNumber":"123-555-1234"}
Input to Router Update tool - phoneNumber: 123-555-1234
Agent UpdateRouterIfNecessary (tool_output) ? : {"success":"true",
"text":"Router has been updated"}
Es gibt drei verschiedene Abläufe, die das gleiche Szenario implementieren.
Die Agentenanwendung kann als eigenständige TypeScript-Anwendung ausgeführt werden, beispielsweise lokal für Entwicklungszwecke. Darüber hinaus kann watsonx Orchestrate verwendet werden, um die drei Schritte aufzurufen und den Kontext zwischen den Schritten zu übergeben.
Wenn „Dieses Formular vor dem Benutzer ausblenden“ ausgewählt ist, wird der gesamte Ablauf ausgeführt, beispielsweise im Orchestrate-Chat-Client oder über die API.
Um Transkripte zusammenzufassen, kann das größere Modell LLama 3.1 70b auf watsonx.ai verwendet werden. Um schnellere Reaktionszeiten zu erreichen und Kosten für den Betrieb der Modelle zu sparen, können kleinere Modelle feinabgestimmt werden.
InstructLab ist eine Open-Source-Initiative unter der Leitung von Red Hat und IBM Research. Neben der Möglichkeit zur Feinabstimmung generativer KI-Modelle unterstützt es auch die Generierung synthetischer Daten, sodass weniger reale Daten erforderlich sind.
Beispielsweise kann InstructLab mehr Beispieltranskriptionen (Kontexte) basierend auf wenigen echten Beispielen generieren, die in Yaml-Dateien definiert sind.
version : 3
task_description : >-
Summarization of phone call transcripts between human agents
and clients of a telecommunication service provider about
technical issues.
created_by : nheidloff
seed_examples :
- context : >-
John (Teltop Customer Care Agent): Hello, this is John from Teltop customer
care. How can I assist you today?nnMary (Disappointed Subscriber): Hi
John, it'''s Mary. I'''ve been having a nightmare with your service.
My home Wi-Fi is acting up, and the TV service over fiber is terrible.
nnJohn: I'm sorry to hear about the troubles you're facing at home, Mary.
Let's address these issues. Can you please provide me with your account number
or the phone number associated with your account??nnMary: Sure, it'''s
123-555-1234. [...]
nnJohn: Mary, it appears there are some issues with your router. We need
to update the router software. [...]
question: >-
Summarize the transcript of the call. Identify the agent and the
subscriber. Add any specific issues mentioned by the subscriber. Add any
corrective actions taken as directed by the agent. Please mention if the
issue is resolved. Mention any follow-up actions and timelines. List the
phone number of the subscriber at the end.
answer: >-
**Agent:** Miken**Subscriber:** Saran [...]
**Corrective Actions:** Router software update [...]
**Subscriber's Phone Number:** 123-555-1234
Der folgende Ausschnitt zeigt einige Beispielausgaben. Ebenso kann InstructLab Zusammenfassungen (Antworten) generieren und auswerten.
[Start of Context]
Raj (Customer Care Agent): Hello, this is Raj from customer care. How can I assist
you today?
Samantha (Customer): Hi Raj, I'm having trouble with my internet connection. It's
been really slow lately [cut ... cut]
[End of Context]
Benutzerdefinierte Fundamentmodelle und Modelle von HuggingFace können in watsonx.ai importiert und dort bereitgestellt werden.
Zur Bewertung von Basismodellen bietet watsonx.governance Mechanismen zur Überwachung von Modellen mit verschiedenen Standardmetriken sowie benutzerdefinierten Metriken.
git clone https://github.com/IBM/watsonx-ai-platform-demos
cd watsonx-demos/applications/application
cp .env.template .env
# define WATSONX_API_KEY and WATSONX_PROJECT_ID
yarn install
yarn start:appOneLLMTwoAgents
Weitere Informationen finden Sie in der Anwendungsdokumentation.
Die Demonstrationen dieses Repos wurden vom IBM DACH CSM-Team in Zusammenarbeit mit Tech Sales umgesetzt.