需要pip openai
这里举例字让ai把一段粗鲁的非英语翻译成有礼貌的英语,指定了用语言的style和提示词(使用一般的OpenAI)
下面使用LangChain,需要导入ChatOpenAI(LangChain对ChatGPT的抽象访问API)
- temperature:控制模型生成文本时随机性的参数
之前输出的是str类型的,现在是dict类型
模型的记忆存储
开始发送消息
关于tokens
这里举例子:一个人的日程安排和一些闲聊,当tokens很大时,可以保留下所有的对话信息,当token减小时,使用SummayBufferMemory对“废话”做摘要
记忆存储方案总结
什么是Chain
什么是Agent,如何创建自己的Agent?如何内置LangChain的搜索引擎?如何让Agent与任何数据存储、API或功能互动?
1️⃣ Intervuew
涉及 LangChain 的问题通常围绕其核心概念、架构、使用场景以及实际应用展开
1、LangChain 是什么?它的主要用途是什么
LangChain 是一个用于构建基于大型语言模型(LLMs)应用程序的框架,通过模块化设计简化了与 LLMs 的交互,【统一了大模型访问的API,同时提供了Prompt提示模版管理机制,对一些常见的场景封装了一些现成的模块,这些任务的过程就像是工作流,叫做链】可以用来开发对话系统、知识问答、文档生成等。
2、什么是 Chains(链)?你能举例说明吗?
Chains用于将多个任务串联起来
例如
1、从用户输入中提取关键词。
2、使用关键词搜索外部数据库。
3、将搜索结果输入 LLM 生成回答。
3、核心组件
LCEL用于解决工作流编排问题,通过LCEL表达式自定义AI任务处理流程(自定义Chain)
LLM不了解新的信息无法回答新的问题,将新信息导入LLM,用来增强LLM生成内容的质量,这种模式叫做RAG模式
Agents是LLM的大脑,利用LLM的NLP理解和推理能力根据需求自动调用外部工具、设备完成特定任务
Memory是让LLM记住之前对话的内容
4、Agent
Agents 是 LangChain 中用于动态决策的组件,可以根据输入选择并调用外部工具【相当于人的大脑,做出判断并执行】
例如,一个代理可以根据用户问题决定是调用搜索引擎、计算器还是数据库。
from langchain.agents import load_tools, initialize_agent, AgentType
from langchain.llms import OpenAI
llm = OpenAI()
tools = load_tools(["serpapi", "llm-math"], llm=llm)
agent = initialize_agent(tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=True)
result = agent.run("What is the population of France multiplied by 2?")
print(result)
5、如何在LangChain中管理记忆
6、集成外部工具
from langchain.agents import load_tools, initialize_agent, AgentType
from langchain.llms import OpenAI
llm = OpenAI()
tools = load_tools(["serpapi", "llm-math"], llm=llm)
agent = initialize_agent(tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=True)
result = agent.run("What is the capital of France?")
print(result)
2️⃣ 如何提高检索效率、精度?检索增强生成(RAG技术)
可以通过为它提供超出其从互联网或其他开放来源的数据中学到的知识,显著扩展LLM的能力
RAG的工作流程
1、针对某一问题从库中检索最相关的文件
2、将检索到的文本合并到更新的提示中