Langchain开发环境部署及使用本地模型详解

Written by

in

文章目录
  • ChatOpenAI 这个类是专门为 OpenAI 官方 API 设计的集成。 它的工作原理是: 封装 API 请求:当你调用 chat_model.invoke(…) 时,ChatOpenAI 类会将你的输入(如问题、消息列表)格式化成符合 OpenAI API 规范的 JSON 数据。 发送网络请求:它通过网络将这个 JSON 数据发送到 OpenAI 的服务器。 接收并解析响应:OpenAI 的服务器在其强大的 GPU 集群上运行模型,生成回答后,将结果以 JSON 格式返回。ChatOpenAI 类接收这个响应,并将其解析成 LangChain 内部的数据结构(如 AIMessage)。 关键点在于:ChatOpenAI 是一个 “客户端” 或 “API 封装器”,它本身不包含任何模型的计算逻辑,所有的计算都发生在 OpenAI 的远程服务器上。 因此,它无法加载和执行你本地的模型文件。 那么如何在 LangChain 中使用本地模型? 要在 LangChain 中使用本地模型,你需要使用 LangChain 为本地模型推理框架提供的集成。 这些框架负责在你的本地机器(CPU 或 GPU)上加载和运行模型,而 LangChain 则提供一个统一的接口来调用它们。
  • 以上为个人经验,希望能给大家一个参考,也希望大家多多支持风君子博客。 您可能感兴趣的文章: Java集成大模型LangChain4j实战完全指南(推荐) 在langchain中对大模型的输出进行格式化实现 langchain中LLM模型使用详解 基于本地知识的问答机器人langchain-ChatGLM 大语言模型实现方法详解 大语言模型的开发利器langchainan安装使用快速入门学习 langchain Prompt大语言模型使用技巧详解
  • 目录
    • 一、安装环境
      • 1、创建并激活虚拟环境
      • 2、安装核心库
      • 3、安装常用依赖
      • 4、验证开发环境
    • 二、如何在 LangChain 中使用本地模型?
      • 1、使用vllm部署本地模型
      • 2、使用langchain进行推理
    • 总结

      作为AI工程框架,LangChain实际是对LLM能力的扩展和补充。

      如果把LLM比作人的大脑,LangChain则是人的躯干和四肢,协助LLM完成“思考”之外的“脏活累活”。

      创建名为 myLC 的虚拟环境

      python -m venv myLC
      

      激活虚拟环境

      cd C:Usersamdin
      myLCScriptsactivate
      

      也可采用conda做虚拟环境管理

      • langchain (核心)
      • langchain-openai (与OpenAI模型交互)
      • langchain-core: 包含所有核心抽象和运行时逻辑(如 LLM, Chain, Runnable 等)
      • langchain-community (社区维护的集成)
      pip install langchain langchain-openai langchain-core langchain-community -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
      

      • tiktoken: OpenAI 用于计算文本 token 数量的工具。
      • chromadb: 一个开源的向量数据库,用于存储文档嵌入向量。
      • faiss-cpu: Facebook AI 开发的高效向量相似度搜索库。
      • python-dotenv: 用于从 .env 文件中加载环境变量 (如 API 密钥)。
      pip install tiktoken chromadb faiss-cpu python-dotenv -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
      

      编写并执行test.py文件

      import sys
      import langchain
      import openai
      
      # 打印已安装库的版本
      print(f"LangChain version: {langchain.__version__}")
      print(f"OpenAI version: {openai.__version__}")
      
      # 打印 Python 解释器版本
      print(f"Python version: {sys.version}")
      

      ChatOpenAI 这个类是专门为 OpenAI 官方 API 设计的集成。

      它的工作原理是:

      封装 API 请求:当你调用 chat_model.invoke(…) 时,ChatOpenAI 类会将你的输入(如问题、消息列表)格式化成符合 OpenAI API 规范的 JSON 数据。

      发送网络请求:它通过网络将这个 JSON 数据发送到 OpenAI 的服务器。

      接收并解析响应:OpenAI 的服务器在其强大的 GPU 集群上运行模型,生成回答后,将结果以 JSON 格式返回。ChatOpenAI 类接收这个响应,并将其解析成 LangChain 内部的数据结构(如 AIMessage)。

      关键点在于:ChatOpenAI 是一个 “客户端” 或 “API 封装器”,它本身不包含任何模型的计算逻辑,所有的计算都发生在 OpenAI 的远程服务器上。 因此,它无法加载和执行你本地的模型文件。

      那么如何在 LangChain 中使用本地模型?

      要在 LangChain 中使用本地模型,你需要使用 LangChain 为本地模型推理框架提供的集成。

      这些框架负责在你的本地机器(CPU 或 GPU)上加载和运行模型,而 LangChain 则提供一个统一的接口来调用它们。

      #使用本机的18000端口,–model执行本地模型路径,–served-model-name为模型别名,方便后续langchain指定

      python -m vllm.entrypoints.openai.api_server --model modelpath --host 0.0.0.0 --port 18000 --served-model-name deepseek-r1-local
      

      注:也可以使用ollma或者其它方式部署本地模型。

      编写测试文件test_langchain.py

      from langchain_openai import ChatOpenAI
      # --- core cfg ---
      # User ChatOpenAI Class obj,and configure it to point to DeepSeek's API
      # 1. model_name:  DeepSeek model name,
      # 2. openai_api_base: DeepSeek API point,default is https://api.deepseek.com
      # 3. openai_api_key: local mode need to set it to "none"
      # 4. max_tokens: max token num
      llm = ChatOpenAI(    
      model_name="deepseek-r1-localg",      
      openai_api_base="http://127.0.0.1:18000/v1/",    
      openai_api_key="none",      
      max_tokens=1024,    
      temperature=0.7
      )
      try:    
      print("Calling local DeepSeek-R1 model...")    
      response = llm.invoke("who are you ? and explain how you differ from OpenAI's GPT model?")        
      print("n--- Local DeepSeek-R1 answer ---")    
      print(response.content)    
      print("------------------------")
      except Exception as e:    
      print(f"Error: {e}")
      

      执行test_langchain.py,即可看到终端打印的输出内容,至此langchain调用本地模型的开发环境准备完毕。

      以上为个人经验,希望能给大家一个参考,也希望大家多多支持风君子博客。

      您可能感兴趣的文章:

      • Java集成大模型LangChain4j实战完全指南(推荐)
      • 在langchain中对大模型的输出进行格式化实现
      • langchain中LLM模型使用详解
      • 基于本地知识的问答机器人langchain-ChatGLM 大语言模型实现方法详解
      • 大语言模型的开发利器langchainan安装使用快速入门学习
      • langchain Prompt大语言模型使用技巧详解

      站内搜索