当前位置:   article > 正文

快速入门LangChain的六大核心模块之Agents_langchain toolkits

langchain toolkits

Agents的核心思想是使用LLM来选择要采取的一系列操作。在Cahin中,一系列操作是硬编码的(在代码中)。在agents中,语言模型用作推理引擎,以确定要执行的操作以及顺序。

关键组件

1、工具 (tools):负责决定下一步要采取的步骤的类,由语言模型和提示提供支持。这个prompt可以包括代理的个性(有助于使其以某种方式做出反应)、代理的背景上下文(有助于为其提供有关要求它执行的任务类型的更多上下文)、提示策略以调用更好的推理。

2、代理 (agents):介绍不同代理类型的概述。

3、工具包 (toolkits):通代理可以访问的工具集比单个工具更重要。为此,LangChain提供了工具包的概念——实现特定目标所需的工具组。工具包中通常有大约 3-5 个工具。

准备工作

安装依赖

  1. pip install langchain
  2. pip install openai

设置密钥

  1. import os
  2. import openai os.environ["OPENAI_API_KEY"] = 'your_openai_key'
  3. os.environ['OPENAI_API_BASE'] = ''

导入库

  1. from langchain.chat_models import ChatOpenAI
  2. from langchain.agents import tool
  3. from langchain.schema import SystemMessage
  4. from langchain.agents import OpenAIFunctionsAgent
  5. from langchain.agents import AgentExecutor
  6. from langchain.prompts import MessagesPlaceholder
  7. from langchain.memory import ConversationBufferMemory
  8. import os
  9. import openai

开始编码

调用ChatOpenAI作为LLM

llm = ChatOpenAI(temperature=0)

定义工具函数

使用@tool装饰器定义一个名为get_word_length的函数,用于计算单词的长度。

  1. @tool
  2. def get_word_length(word: str) -> int:
  3. """Returns the length of a word."""
  4. return len(word)
  5. tools = [get_word_length]

创建对话历史

定义一个常量MEMORY_KEY,用于存储对话历史的键名。

  1. MEMORY_KEY = "chat_history"
  2. memory = ConversationBufferMemory(memory_key=MEMORY_KEY, return_messages=True)

创建代理和代理执行器

system_message = SystemMessage(content="你是非常强大的助手,但不善于计算单词的长度。")

  1. prompt = OpenAIFunctionsAgent.create_prompt(
  2. system_message=system_message,
  3. extra_prompt_messages=[MessagesPlaceholder(variable_name=MEMORY_KEY)])
  4. agent = OpenAIFunctionsAgent(llm=llm, tools=tools, prompt=prompt)
  5. agent_executor = AgentExecutor(agent=agent, tools=tools, memory=memory, verbose=True)

运行聊天机器人

通过agent_executor.run方法向聊天机器人发送问题,例如"耕耘一词中有几个字?"和"它是个真正的词汇吗?"。

  1. agent_executor.run("耕耘一词中有几个字?")
  2. agent_executor.run("它是个真正的词汇吗?")

执行结果演示

2e310fb6598f46a19bd9512d6e03b933.png

完整代码(点击即可进入)

小结

以上就是我在快速入门agents分享,希望可以帮到各位!欢迎关注或发私信与我共同讨论更多大模型领域知识~

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/621593
推荐阅读
相关标签
  

闽ICP备14008679号