赞
踩
Agents的核心思想是使用LLM来选择要采取的一系列操作。在Cahin中,一系列操作是硬编码的(在代码中)。在agents中,语言模型用作推理引擎,以确定要执行的操作以及顺序。
1、工具 (tools):负责决定下一步要采取的步骤的类,由语言模型和提示提供支持。这个prompt可以包括代理的个性(有助于使其以某种方式做出反应)、代理的背景上下文(有助于为其提供有关要求它执行的任务类型的更多上下文)、提示策略以调用更好的推理。
2、代理 (agents):介绍不同代理类型的概述。
3、工具包 (toolkits):通代理可以访问的工具集比单个工具更重要。为此,LangChain提供了工具包的概念——实现特定目标所需的工具组。工具包中通常有大约 3-5 个工具。
- pip install langchain
- pip install openai
- import os
- import openai os.environ["OPENAI_API_KEY"] = 'your_openai_key'
- os.environ['OPENAI_API_BASE'] = ''
- from langchain.chat_models import ChatOpenAI
- from langchain.agents import tool
- from langchain.schema import SystemMessage
- from langchain.agents import OpenAIFunctionsAgent
- from langchain.agents import AgentExecutor
- from langchain.prompts import MessagesPlaceholder
- from langchain.memory import ConversationBufferMemory
- import os
- import openai
llm = ChatOpenAI(temperature=0)
使用@tool装饰器定义一个名为get_word_length的函数,用于计算单词的长度。
- @tool
- def get_word_length(word: str) -> int:
- """Returns the length of a word."""
- return len(word)
- tools = [get_word_length]
定义一个常量MEMORY_KEY,用于存储对话历史的键名。
- MEMORY_KEY = "chat_history"
- memory = ConversationBufferMemory(memory_key=MEMORY_KEY, return_messages=True)
system_message = SystemMessage(content="你是非常强大的助手,但不善于计算单词的长度。")
- prompt = OpenAIFunctionsAgent.create_prompt(
- system_message=system_message,
- extra_prompt_messages=[MessagesPlaceholder(variable_name=MEMORY_KEY)])
- agent = OpenAIFunctionsAgent(llm=llm, tools=tools, prompt=prompt)
- agent_executor = AgentExecutor(agent=agent, tools=tools, memory=memory, verbose=True)
通过agent_executor.run方法向聊天机器人发送问题,例如"耕耘一词中有几个字?"和"它是个真正的词汇吗?"。
- agent_executor.run("耕耘一词中有几个字?")
- agent_executor.run("它是个真正的词汇吗?")
以上就是我在快速入门agents分享,希望可以帮到各位!欢迎关注或发私信与我共同讨论更多大模型领域知识~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。