Este repositorio contiene demostraciones de IBM watsonx, la plataforma de datos e inteligencia artificial de IBM creada para empresas.
La aplicación de IA de ejemplo en este repositorio aprovecha los siguientes componentes principales:
Como ejemplo de escenario se utiliza la atención al cliente de una empresa de telecomunicaciones. Los agentes humanos hablan con los clientes para resolver sus problemas. Los agentes humanos cuentan con el apoyo de agentes digitales para automatizar al máximo las correcciones necesarias.
Aquí hay una transcripción de una conversación con un cliente que tiene un problema con el enrutador Wi-Fi:
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.
En este ejemplo, el software de los enrutadores se puede actualizar de forma remota y automática. Si esto se puede hacer con éxito, se envían correos electrónicos a los clientes.
Las transcripciones de llamadas telefónicas se pueden realizar a través de servicios de voz a texto. El activo cubre los siguientes tres pasos que se ejecutan secuencialmente. Para actualizar enrutadores y enviar correos electrónicos, se invocan herramientas.
Veamos el paso (2) con más detalle. Si el resumen de la transcripción contiene 'actualización del enrutador' como acción correctiva, el agente entiende que tiene que invocar una herramienta con el número de teléfono del cliente como entrada.
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'
}
Los agentes se han implementado con Bee Agent Framework en TypeScript. El marco ha sido creado por IBM Research y está disponible como código abierto. El siguiente fragmento muestra la definición de la herramienta de enrutador que se incluye en el mensaje al invocar los modelos de lenguaje grande.
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 ) ,
} ) ;
}
En lugar de alucinar la salida de la herramienta, el agente detiene la transmisión del LLM después de 'Salida de la herramienta: ' y ejecuta la herramienta en su lugar.
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"}
Hay tres flujos diferentes que implementan el mismo escenario.
La aplicación agente se puede ejecutar como una aplicación TypeScript independiente, por ejemplo localmente con fines de desarrollo. Además, Watsonx Orchestrate se puede utilizar para invocar los tres pasos y pasar contexto entre los pasos.
Cuando se selecciona "Ocultar este formulario al usuario", se ejecuta el flujo completo, por ejemplo en el cliente de chat Orchestrate o mediante API.
Para resumir las transcripciones, el modelo más grande LLama 3.1 70b se puede utilizar ejecutándose en watsonx.ai. Para lograr tiempos de respuesta más rápidos y ahorrar costos de ejecución de los modelos, se pueden ajustar modelos más pequeños.
InstructLab es una iniciativa de código abierto liderada por Red Hat e IBM Research. Además de la capacidad de ajustar los modelos de IA generativa, también admite generaciones de datos sintéticos para que se requieran menos datos reales.
Por ejemplo, InstructLab puede generar más transcripciones de muestra (contextos) basadas en algunas muestras reales que están definidas en archivos yaml.
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
El siguiente fragmento muestra algunos resultados de ejemplo. De manera similar, InstructLab puede generar y evaluar resúmenes (respuestas).
[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]
Los modelos de base personalizados y los modelos de HuggingFace se pueden importar e implementar en watsonx.ai.
Para evaluar los modelos básicos, watsonx.governance proporciona mecanismos para monitorear modelos con varias métricas listas para usar, así como métricas personalizadas.
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
Consulte la documentación de la solicitud para obtener más información.
Las demostraciones de este repositorio han sido implementadas por el equipo IBM DACH CSM en colaboración con Tech Sales.