Investigación de uso de LangChain

Tabla de contenido

1. ¿Qué es LangChain?

2. Módulos principales proporcionados por LangChain

3. Ejemplo de uso de Agente

4. Comparación de los efectos de zero-shot-react-description en ChatGPT y LLaMA-7B


1. ¿Qué es LangChain?

LangChain es un marco de programa que permite a los usuarios crear rápidamente aplicaciones en torno al LLM (base).

LangChain puede administrar fácilmente las interacciones con los modelos de lenguaje, vincular múltiples componentes e integrar recursos adicionales como API y bases de datos.

Su idea central es que los diferentes componentes se pueden "vincular" entre sí para crear aplicaciones LLM más avanzadas.

2. Módulos principales proporcionados por LangChain

1. Función de avisos

Incluye administración de sugerencias, optimización de sugerencias y serialización de sugerencias.

2, LLM

Incluye una interfaz común para todos los LLM, así como herramientas de LLM de uso común

3, cargadores de documentos

Incluye una interfaz estándar para cargar documentos e integración con varias fuentes de datos de texto.

4, Utilidades

Los modelos de lenguaje tienden a ser más poderosos cuando interactúan con otras fuentes de conocimiento o computación. Esto puede incluir REPL de Python, incrustaciones, motores de búsqueda, etc. LangChain proporciona una gran cantidad de herramientas de uso común.

5, índices

Los modelos de lenguaje tienden a ser más poderosos cuando se combinan con sus propios datos de texto.

6, Agentes

Los agentes involucran un LLM que elige una acción para realizar, realiza esa acción, ve las observaciones y repite el proceso hasta su finalización.

7, Charla

Los modelos de chat son una API diferente a los modelos de lenguaje: en lugar de procesar texto sin procesar, procesan mensajes.

3. Ejemplo de uso de Agente

1. Ejemplos

2. Mapeo de tipo de agente a instancia

AgentType.ZERO_SHOT_REACT_DESCRIPTION: ZeroShotAgent,

AgentType.REACT_DOCSTORE: ReActDocstoreAgent,

AgentType.SELF_ASK_WITH_SEARCH: SelfAskWithSearchAgent,

AgentType.CONVERSATIONAL_REACT_DESCRIPTION: ConversationalAgent,

AgentType.CHAT_ZERO_SHOT_REACT_DESCRIPTION: Agente de chat,

AgentType.CHAT_CONVERSATIONAL_REACT_DESCRIPTION: ConversationalChatAgent,

Tipo de agente.STRUCTURED_CHAT_ZERO_SHOT_REACT_DESCRIPTION: Agente de chat estructurado

zero-shot-react-description: determine qué herramienta usar en función de la descripción de la herramienta y la cadena solicitada

react-docstor: use el marco de reacción, interactúe con docstore, use las herramientas de búsqueda y búsqueda, la primera se usa para buscar y la segunda se usa para encontrar términos, por ejemplo: herramienta Wipipedia

self-ask-with-search: Este agente solo utiliza una herramienta: Intermediate Answer, que buscará respuestas fácticas a preguntas (referidas a respuestas no generadas por gpt, pero existentes en la red y texto), como la API de búsqueda de Google herramientas

conversacional-reaccionar-descripción: un proxy diseñado para la configuración conversacional, su indicador se diseñará para ser conversacional y aún utilizará el marco ReAct para decidir qué herramienta usar y almacenar interacciones conversacionales pasadas en la memoria.

3. Descripción de solicitud de instancia de agente de ZeroShotAgent

Ensamble los parámetros de entrada de la plantilla de solicitud:

Parámetros de la herramienta :

Toda la información de parámetros para todas las herramientas

Parámetros de prefijo :

'Responda las siguientes preguntas lo mejor que pueda. Tienes acceso a las siguientes herramientas:'

Parámetros de sufijo :

'¡Comenzar!

Pregunta: {entrada}

Pensamiento: {agent_scratchpad}'

Parámetros de instrucciones de formato :

Utilice el siguiente formato:

Pregunta: la pregunta de entrada que debe responder

Pensamiento: siempre debes pensar en qué hacer

Acción: la acción a realizar debe ser una de [{tool_names}]

Entrada de acción: la entrada a la acción

Observación: el resultado de la acción.

... (este pensamiento/acción/entrada de acción/observación puede repetirse N veces)

Pensamiento: ahora sé la respuesta final.

Respuesta final: la respuesta final a la pregunta de entrada original

4. Diagrama de flujo de operación del agente

(1) Contexto de paso de procesamiento pasos_intermedios

Está vacío por primera vez, otras referencias son las siguientes:

[(AgentAction(tool='Search', tool_input='Hangzhou May 20 2023 weather', log=' Necesito buscar el tiempo en Hangzhou el 20 de mayo de 2023\nAcción: Buscar\nEntrada de acción: "Hangzhou May 20 2023 clima"'), "Las temperaturas en Hangzhou en mayo son cómodas con una mínima de 64 °F y una máxima de hasta 80 °F. Puede esperar lluvia durante aproximadamente la mitad del mes de mayo en Hangzhou. Esperamos aproximadamente 8 a 15 días de lluvia, por lo que sus botas de goma y su paraguas serán muy útiles este mes si desea mantenerse seco"), (AgentAction(tool='Calculator', tool_input='-1 * (80 °F - 32) * 5 / 9', log=' Necesito convertir 80°F a Celsius y multiplicar por -1\nAcción: Calculadora\nAcción Entrada: "-1 * (80°F - 32) * 5 / 9"'), 'Respuesta: -26.666666666666668')]

(2) pensamientos:

Necesito buscar el clima en Hangzhou el 20 de mayo de 2023(只根据input生成的 Thought
Acción: Búsqueda
Entrada de acción: "Hangzhou 20 de mayo de 2023 clima"
Observación: Las temperaturas en Hangzhou en mayo son cómodas con un mínimo de 64 ° F y alto hasta 80°F. Puede esperar lluvia durante aproximadamente la mitad del mes de mayo en Hangzhou. Esperamos aproximadamente de 8 a 15 días de lluvia, por lo que sus botas de goma y su paraguas serán muy útiles este mes si desea mantenerse seco.
Pensamiento: necesito convertir 80 °F a Celsius y multiplicar por -1
Acción:
Entrada de acción de calculadora: "-1 * (80 °F - 32) * 5/9"
Observación: Respuesta: -26.666666666666668
Pensamiento:

(3) mensaje:

Las temperaturas en Hangzhou en mayo son cómodas, con una mínima de 64 °F y una máxima de hasta 80 °F. Puede esperar lluvia durante aproximadamente la mitad del mes de mayo en Hangzhou. Esperamos aproximadamente de 8 a 15 días de lluvia, por lo que sus botas de goma y su paraguas serán muy útiles este mes si desea mantenerse seco.\nPensamiento: necesito convertir 80 °F a Celsius y multiplicar por -1\nAcción: Calculadora\nAcción Entrada: "-1 * (80°F - 32) * 5/9"\nObservación: Respuesta: -26.666666666666668\nPensamiento:'

(4) LLM analiza los resultados intermedios

[[Generation(text='Esta información debe buscarse en línea\nAcción: Buscar\nEntrada de acción: ¿Cuál es el clima en Hangzhou el 20 de mayo de 2023', generation_info={'finish_reason': 'stop', 'logprobs': Ninguno})]] llm_output={'token_usage': {'total_tokens': 223, 'prompt_tokens': 188, 'completion_tokens': 35}, 'model_name': 'GPT-3.5'}

(5) LLM analiza el resultado final:

[[Generation(text=' La temperatura es -26,67 grados Celsius\n Respuesta final: -26,67 grados Celsius<|im_end|>', generation_info={'finish_reason': 'stop', 'logprobs': Ninguno})]] llm_output={'token_usage': {'prompt_tokens': 361, 'completion_tokens': 20, 'total_tokens': 381}, 'model_name': 'GPT-3.5'}

4. Comparación de los efectos de zero-shot-react-description en ChatGPT y LLaMA-7B

Supongo que te gusta

Origin blog.csdn.net/benben044/article/details/130843326
Recomendado
Clasificación