# langchain-basic-af04 **Repository Path**: Huang_Hl/langchain-basic-af04 ## Basic Information - **Project Name**: langchain-basic-af04 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2026-06-11 - **Last Updated**: 2026-06-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 第一天:LangChain入门 1、为什么需要LangChain 问题1:LLMs用的好好,为什么还需要开发框架? 框架工程化的解决方案:工具调用、上下文管理、提示词、历史记录、检索、多轮推理、包括各种模型等等, 问题2:我们可以使用GPT、Qwen、DeepSeek等模型通过API进行开发,为什么还需要框架? 1、简化开发难度 2、开发者可以更专注于业务逻辑 3、学习成本更低了,使用LangChain可以统一、规范的方式进行调用,有更好的移植性。 4、现成的Agent构建方法 2、LangChain的发展 2023-》开发项目-》LangChain 2024->LangChain0.1-》稳定版 2025-》LangChain 1.0 -》将LangGraph做了更高级的封装 3、LangChain的核心模块 Model I/O Chains:LCEL 链 -》RAG Agent Tools Memory Retriveval Document Processing Vector Store 4、LangChain智能体开发 agent = create_agent( 模型, 工具|中间件, 系统提示词, 上下文结构, 响应的格式, 消息的持久化 ) 5、LangChain迁移(了解) 6、Model基本使用 6.1 初始化各种模型 ChatDeepSeek:初始化具体供应商的模型,deepseek, 就需要安装该供应商的具体依赖 langchain-deepseek init_chat_model:初始化通用聊天模型 第二天:模型|消息|提示词模板 1、可以配置化模型:init_chat_model在初始化模型时可以动态配置模型参数 model = init_chat_model(configuable_fields=[模型参数], prefix="") 面试题:top_p、top_k区别? top_p: 从概念累积达到p的候选词中随机采样。top_p=0.9,就是把所有的候选词按概率从高到低进行排序,累计到90%就截止,从这个范围内采样。候选词是动态的 top_k: 直接取概率最高的前k个词,比如top_k=50,就是固定只从最高概率的50个词选,候选词是固定的 一般先调top_p,大多数场景用0.7~0.95,top_p=1不限制全量采样 DeepSeek、OpenAI主流API推荐只用top_p,不暴露top_k model.invoke("xx", config={"configuable":{具体的模型参数}}) 2、消息 2.1 消息类型 #from langchain_core.messages import xxxMessage from langchain.messages import xxxMessage SystemMessage:系统消息,设置角色和身份 HumanMessage:用户消息,用户的要求 AIMessage:模型消息,模型输出的内容 ToolMessage:工具消息,工具之后的内容 2.2 消息内容 content content_blocks:在LangChain解决不同模型返回内容格式的不一致问题提供的一个统一内容格式 3、提示词模板 from langchain_core.prompts import PromptTemplate,ChatPromptTemplate 3.1 基础模板 PromptTemplate #方式1 template = PromptTemplate.from_template("xxxx{a}yyyyy{b}") #创建模版 template.format(a="xxx", b="yyy") #格式化模板 #方式2 template = PromptTemplate(input_variables=["a", "b"], template="xxxx{a}yyyyy{b}") #创建模版 template.format(a="xxx", b="yyy") 3.2 聊天模型ChatPromptTemplate chat_template = ChatPromptTemplate.from_messages([ SystemMessage("xxx"), HumanMessage("yyy{aa}"), AIMessage("zzz{bb}"), ToolMessage("xxx", "yyy"), ]) messages = chat_template.format_messages(aa="xxx", bb="yyy")