大模型开发遇到的问题及langchain框架学习
背景:
1、微场景间跳转问题,无法实现微场景随意穿插
2、大模型幻读(推荐不存在的产品、自己发挥)
3、知识库检索,语义匹配效果较差,匹配出的结果和客户表述的语义有差异
4、场景外话题防护(如作诗、编码、翻译、敏感信息、政治任务讨论等等)
5、多场景切换不支持
6、安全问题
7、管理平台PART 02
智能体
智能体,英文名是Agent, 称智能体、代理、代理人等。人工智能智能体简称AI
智能体,是一种能够感知环境、进行决策、执行动作、完成既定目标的智能实体。
大模型
大型语言模型简称大模型(llm),是基于海量文本数据训练的深度学习模型。通过
prompt指令,通过输入客户聊天上下文,大模型理解文本含义,按照一定的思维链反馈
知识库
有时候搜索的内容,当大模型中不存在相应的知识,通过知识库里面的内容弥补,
避免大模型幻觉。
Agent 设计模式
1)Reflection:让 Agent 审视和修正自己生成的输出;
2)Tool Use:LLM 生成代码、调用 API 等进行实际操作;
3)Planning:让 Agent 分解复杂任务并按计划执行;
4)Multiagent Collaboration:多个 Agent 扮演不同角色合作完成任务;请在此处添加具体
智能体设计模式-反思模式
智能体设计模式-使用工具
智能体设计模式-规划
智能体设计模式-多智能体-路由委派
langchain
LangChain是一个开源框架,用于构建大型语言模型(LLM)应用程序。
• 具有上下文感知能力:将语言模型连接到上下文来源(提示指令,少量的示例,需要回应的内容等)
• 具有推理能力:依赖语言模型进行推理(根据提供的上下文如何回答,采取什么行动等)
它通过提供模块化组件简化了开发流程。
langchain的版本迭代
初始版本:2022年10月
稳定版本 0.1.0:2024年1月8日发布
最新稳定版本:0.1.17:2024年5月1日发布这是一个较新的版本langchain框架
LangChain 库
包含了各种组件的接口和集成,一个基本的运行时,用于将这些组件组合成链和代理
LangServe
一个用于将 LangChain 链部署为 REST API 的库。
LangSmith
一个开发者平台,让你可以调试、测试、评估和监控基于任何 LLM 框架构建的链,并且与 LangChain
无缝集成。
langgraph(构建工作流)
基于LangChain 的多智能体运行框架,这个框架的主要目的是帮助用户更方便地构建有环图,从而
在有状态的多角色应用程序中实现更复杂的逻辑
lagnchain核心组件
Models:与语言模型进行交互
• LLMs(文本补全功能): 输入一个文本字符串并返回一个文本字符串的模型
• 聊天模型: 由语言模型支持的模型,接受一个聊天消息列表作为输入并返回一个聊天消息
Prompts:提示词工程
Memory:内存记忆
Chains:构建调用链
Agents:代理,执行复杂任务
Rag检索增强:文本嵌入模型、向量存储、文档加载器和转换器、检索(向量+关键字)
回调函数:记录和传输任何链的中间步骤
prompt = ChatPromptTemplate.from_template("tell me a short joke about {topic}")
model = ChatOpenAI(model="gpt-4")
chain = prompt | model.bind_tools(tools=[search]) | StrOutputParser()
chain.invoke({"topic": "ice cream"})
LangSmith 无侵入流程调用监控
开发实践
基于工具的智能体
基于路由代理的多智能体
基于多级路由代理的多智能体
使用总结
使用框架优点:
• 简化开发流程,提高开发效率
• 提高项目可拓展性
• 能够实现多代理工作流编排
• 可观测性和调试
缺点:
• 框架还未成熟,模型支持力度不同。
• 学习成本
• 框架封装后,隐藏了很多细节,业务设计要求高
github项目应用github.com/liuyanqun08…