AI学习-langchain

发布时间:2026/7/17 21:25:44
AI学习-langchain 官网文档地址Deep Agents 概述 - LangChain 文档 - LangChain 教程环境准备创建项目安装依赖pip install -U langchain1.2.12也可以安装一下读取环境变量的依赖pip install dotenv对话模型调用使用deepseek模型先安装deepseek依赖pip install langchain-deepseekdeepseek官网创建.env文件配置环境变量调用模型import os from langchain_deepseek import ChatDeepSeek from dotenv import load_dotenv #1、读取.env配置文件中的信息。相关的环境变量以.env文件中的优先 load_dotenv(overrideTrue) DEEPSEEK_BASE_URL os.getenv(DEEPSEEK_BASE_URL) DEEPSEEK_API_KEY os.getenv(DEEPSEEK_API_KEY) #2、模型的初始化 deepseek ChatDeepSeek( modeldeepseek-v4-flash, api_keyDEEPSEEK_API_KEY, base_urlDEEPSEEK_BASE_URL ) #3、模型调用 res deepseek.invoke(请用一句话介绍你自己) print(res)响应硅基流动平台其他模型只要替换模型名称即可硅基流动平台有很多免费的模型使用10B以下硅基流动统一登录复制模型名称查看调用方法在.env中配置环境变量代码实现import os from langchain_deepseek import ChatDeepSeek from dotenv import load_dotenv #调用硅基流动平台 load_dotenv(overrideTrue) #1、读取.env配置文件中的信息。相关的环境变量以.env文件中的优先 GUI_KEYos.getenv(GUI_KEY) GUI_BASE_URLos.getenv(GUI_BASE_URL) #2、模型的初始化 chat ChatDeepSeek( modeldeepseek-ai/DeepSeek-OCR, api_keyGUI_KEY, base_urlGUI_BASE_URL ) #3、模型调用 re chat.invoke(你是谁) print(re)响应智普模型硅基流动平台只需要在原来deepseek的基础上修改一下模型名称即可#智普模型 import os from langchain_deepseek import ChatDeepSeek from dotenv import load_dotenv load_dotenv(overrideTrue) #1、读取.env配置文件中的信息。相关的环境变量以.env文件中的优先 GUI_KEYos.getenv(GUI_KEY) GUI_BASE_URLos.getenv(GUI_BASE_URL) #2、模型的初始化 zhipu ChatDeepSeek( modelTHUDM/GLM-Z1-9B-0414, api_keyGUI_KEY, base_urlGUI_BASE_URL ) #3、模型调用 re1 zhipu.invoke(你是谁) print(re1)响应混元模型硅基流动平台只需要在原来deepseek的基础上修改一下模型名称即可#混元模型 import os from langchain_deepseek import ChatDeepSeek from dotenv import load_dotenv load_dotenv(overrideTrue) #1、读取.env配置文件中的信息。相关的环境变量以.env文件中的优先 GUI_KEYos.getenv(GUI_KEY) GUI_BASE_URLos.getenv(GUI_BASE_URL) #2、模型的初始化 hunyuan ChatDeepSeek( modeltencent/Hunyuan-MT-7B, api_keyGUI_KEY, base_urlGUI_BASE_URL ) #3、模型调用 re1 hunyuan.invoke(你是谁) print(re1)响应chatOpenAI兼容写法#openAI写法 from langchain_openai import ChatOpenAI from dotenv import load_dotenv #1、读取.env配置文件中的信息。相关的环境变量以.env文件中的优先 load_dotenv(overrideTrue) DEEPSEEK_BASE_URL os.getenv(DEEPSEEK_BASE_URL) DEEPSEEK_API_KEY os.getenv(DEEPSEEK_API_KEY) #2、模型的初始化 openAi ChatOpenAI( modeldeepseek-v4-flash, api_keyDEEPSEEK_API_KEY, base_urlDEEPSEEK_BASE_URL ) r openAi.invoke(你好啊你是谁) print(r)响应langchain中模型初始化写法init_chat_model是LangChain1.x中推出的用于初始化聊天模型的统一接口。只要是LangChain支持的模型都可以处理它会根据模型名称自动选择对应的模型类初始化实例。from langchain.chat_models import init_chat_model model init_chat_model( provider:model_name,#提供商:模型名称 api_key,#API密钥(可选可从环境变量读取) temperature0.7,#温度参数(可选) max_tokens1000,#最大 token 数(可选) **kwargs #其他模型特定参数 )问题:init_chat_model和直接使用 ChatTongyi、ChatOpenAI、ChatDeepSeek有什么区别?回答:init_chat_model是LangChain1.0的统一接口优势包括:统一接口:无需记住每个提供商的不同初始化方式(以一致的方式初始化)易于切换:简化了智能体系统中模型切换策略(只需修改模型字符串)简洁明了:更简洁的语法减少样板代码自动适配:内部根据模型标识自动选择对应的驱动类(ChatOpenAl、ChatDeepSeek)调用deepseek官网from langchain.chat_models import init_chat_model from dotenv import load_dotenv import os #1、读取.env配置文件中的信息。相关的环境变量以.env文件中的优先 load_dotenv(overrideTrue) DEEPSEEK_BASE_URL os.getenv(DEEPSEEK_BASE_URL) DEEPSEEK_API_KEY os.getenv(DEEPSEEK_API_KEY) model init_chat_model( modeldeepseek-v4-flash, api_keyDEEPSEEK_API_KEY, base_urlDEEPSEEK_BASE_URL ) res model.invoke(你是谁啊) print(res)调用硅基流动的deepseekfrom langchain.chat_models import init_chat_model from dotenv import load_dotenv import os #1、读取.env配置文件中的信息。相关的环境变量以.env文件中的优先 load_dotenv(overrideTrue) GUI_KEY os.getenv(GUI_KEY) GUI_BASE_URL os.getenv(GUI_BASE_URL) model init_chat_model( modeldeepseek-ai/DeepSeek-OCR, api_keyGUI_KEY, base_urlGUI_BASE_URL ) res model.invoke(你是谁啊,用中文回答) print(res)模型调用在 LangChain 中模型调用Invocation是指通过特定方法触发大语言模型生成输出的过程。根据不同的应用场景和需求LangChain 提供了几种核心的调用方式主要是invoke()、stream()和batch()方法以及它们的异步版本ainvoke()、astream()和abatch()下面将系统地介绍这些方法。invoke()阻塞式一次性返回完整结果。适用于问答、批处理任务、无需实时反馈的场景。ainvoke()非阻塞式提高系统吞吐量。适用于高并发 Web 应用、IO 密集型任务。stream()流式输出实时返回每个 token。适用于聊天机器人、长文本生成、需要提升用户体验的交互应用。astream()非阻塞式提高系统吞吐量。适用于高并发 Web 应用、IO 密集型任务。注原文图片中此处拼写为asteam()此处已修正为正确拼写。batch()批量处理多个输入。适用于高并发场景需要同时处理大量请求。abatch()非阻塞式提高系统吞吐量。适用于高并发 Web 应用、IO 密集型任务阻塞式import os from langchain_deepseek import ChatDeepSeek from dotenv import load_dotenv #1、读取.env配置文件中的信息。相关的环境变量以.env文件中的优先 load_dotenv(overrideTrue) DEEPSEEK_BASE_URL os.getenv(DEEPSEEK_BASE_URL) DEEPSEEK_API_KEY os.getenv(DEEPSEEK_API_KEY) #2、模型的初始化 chat ChatDeepSeek( modeldeepseek-v4-flash, api_keyDEEPSEEK_API_KEY, base_urlDEEPSEEK_BASE_URL ) #3、模型调用 re chat.invoke(你是谁) print(re)流式import os from langchain_deepseek import ChatDeepSeek from dotenv import load_dotenv #1、读取.env配置文件中的信息。相关的环境变量以.env文件中的优先 load_dotenv(overrideTrue) DEEPSEEK_BASE_URL os.getenv(DEEPSEEK_BASE_URL) DEEPSEEK_API_KEY os.getenv(DEEPSEEK_API_KEY) #2、模型的初始化 chat ChatDeepSeek( modeldeepseek-v4-flash, api_keyDEEPSEEK_API_KEY, base_urlDEEPSEEK_BASE_URL ) #3、模型调用 response chat.stream(你是谁) for res in response: print(res.content)三种参数messages [ {role:system,content:你是一个数学老师}, {role:user,content:11?}, {role:assistant,content:2}, {role:user,content:我刚刚问了什么}, ] re chat.invoke(messages) print(re.content)