LangChain-1.0教程-(介绍,模型接入)

发布时间:2026-01-27 23:16:54编辑:123阅读(8)

    Langchain-1.0版本核心新特性

    1. 全新 Agent API:create_agent

    引入了更简单、高度抽象的智能体(Agent)创建方式。通过 create_agent() 一行代码,就可以构建具备工具调用、循环控制等能力的智能代理。

    2. Middleware 中间件系统

    允许开发者在 Agent 执行流程中定义多个可插拔钩子(hooks),对行为进行监控、修改或扩展。大大提升了控制力和可定制性。

    3. 改进的结构化输出支持

    在 Agent 主循环内原生支持结构化输出(Structured Output),减少额外的 LLM 调用,降低延迟和成本,更便于解析模型返回的信息。

     4. 标准化内容块(Content Blocks)

    提供跨提供商的一致消息/内容规范,可支持推理结果、引用、服务器端工具调用等格式,大幅提升组件间兼容性。


    新版LangChain vs LangGraph:职责分工与对比

    维度Langchain 1.0LangGraph
    定位统一抽象+快速搭建:模型,消息,工具,链路,标准输出底层运行时:图式编排,状态管理,检查点,并发,可中断/恢复
    Agent入口create_agent(开箱即用)Graph API(自定义节点/边/条件)
    可靠性借助中间件与Graph Runtime获得由Graph的Pregel风格执行/检查点提供
    治理能力中间件(HITL,汇总,修剪,预算控制)中断,持久化,分支/循环,显示状态机
    适用人群产品/业务工程师,快速Poc到MVP平台/基础设施工程师,需要精确控制的团队

    官方也强调快速起步用LangChain,复杂控制用LangGraph,二者并行协同。


    模型接入LangChain流程

    环境说明:LangChain>=1.0.0, Python>=3.11,版本过低使用pip install -upgrade <包名称>进行升级

    pip install langchain

    创建一个demo.py文件,运行可查看langchain版本

    import langchain

    print(langchain.__version__)


    通过api_key的方式接入模型

    在当前目录创建一个.env的文件,写入api_key,需到对应的模型官网开通

    image.png

    Qwen_API_KEY=sk-a53ee2xxxxxxxxxxxxxxxxxxxxxxxxxxxca3e

    代码如下:

    import os
    from dotenv import load_dotenv
    from openai import OpenAI
    load_dotenv(override=True)
    
    
    Qwen_API_KEY = os.getenv("Qwen_API_KEY")
    client = OpenAI(api_key=Qwen_API_KEY,base_url='https://dashscope.aliyuncs.com/compatible-mode/v1')
    response = client.chat.completions.create(
        model="qwen3-max",
        messages=[
            {"role":"system", "content":"你是乐于助人的助手,请根据用户的问题给出回答"},
            {"role":"user","content":"你好,介绍一下自己"},
        ]
    )
    
    print(response.choices[0].message.content)

    运行结果:

    你好!我是你的AI助手,很高兴认识你!😊

    我是一个乐于助人、知识丰富、耐心细致的虚拟伙伴,可以帮你解答各种问题、提供信息、协助写作、进行逻辑推理、编程,或者只是陪你聊聊日常。无论你是需要学习帮助、工作建议,还是想了解某个知识点,我都会尽力用清晰、准确又友好的方式为你服务。

    虽然我不是真人,但我始终以真诚和热情对待每一次对话。有什么我可以帮你的吗?


    通义千问接入LangChain流程

    import os
    from dotenv import load_dotenv
    from langchain_community.chat_models.tongyi import ChatTongyi
    load_dotenv(override=True)
    Qwen_API_KEY = os.getenv("Qwen_API_KEY")
    
    
    llm = ChatTongyi(model="qwen3-max", api_key=Qwen_API_KEY)
    messages = [("system", "你是乐于助人的助手,请根据用户的问题给出回答"),("human", "你好,介绍一下自己"),]
    msg = llm.invoke(messages)
    print(msg.content)

    运行结果

    你好!我是你的AI助手,很高兴认识你!😊

    我是一个乐于助人、知识丰富、随时待命的虚拟伙伴。我可以帮你解答各种问题,比如:

    - 解释科学、历史、文化等领域的知识

    - 帮你写作文、润色文字或创作故事

    - 辅导学习,包括数学、语文、英语等科目

    - 提供建议,比如生活小技巧、时间管理方法

    - 陪你聊天、讨论想法,或者只是轻松地闲聊

    我不会评判你,也不会不耐烦——无论问题简单还是复杂,我都会认真对待。有什么我可以帮你的吗?🌟


    模型私有化部署的核心意义

    1 数据安全与合规(最常见、最硬的理由)- 数据不出内网是私有化部署的第一性价值。

    2 成本可控(尤其是高频 / 大规模调用)- 当调用量上来后,私有部署会比 API 便宜很多

    3 可控性与可定制能力 - 私有部署 = 你对模型拥有“工程主权”

    4 稳定性与 SLA(不被别人影响)- 可在内网环境 毫秒级响应,可为关键业务提供明确 SLA

    5 能力融合:模型 ≠ 聊天,而是“系统组件” -  私有化部署后,模型可以像一个服务组件一样深度嵌入系统


    本地私有化部署模型接入LangChain流程

    环境说明:使用ollama本地部署Qwen3-4B模型

    ollama安装可查看菜鸟教程:https://www.runoob.com/ollama/ollama-install.html

    安装成功后,浏览器访问:http://localhost:11434/

    显示:Ollama is running  则表示安装成功


    下载模型:

    ollama run hopephoto/Qwen3-4B-Instruct-2507_q8:latest


    查看ollama下载的模型

    ollama list

    NAME                                                                                        ID                              SIZE       MODIFIED

    hopephoto/Qwen3-4B-Instruct-2507_q8:latest    3181243d1181    4.3 GB    6 days ago


    LangChain运行本地模型代码如下:

    from langchain.chat_models import init_chat_model
    
    llm = init_chat_model(
        #本地模型名
        model="hopephoto/Qwen3-4B-Instruct-2507_q8:latest",
        model_provider="ollama",
        # temperature 0.1~0.9之间,值越小回答越稳定,越高随机性越高
        temperature=0.7,
        # 每一步生成,只允许从「概率最高的前 K 个 token」里选,top_k = 40 → 只保留前 40 个高概率 token
        top_k=40,
        # 从概率排序的 token 中,取一个集合,使它们的累计概率 ≥ p
        top_p=0.95,
        base_url="http://localhost:11434",
    )
    messages = [("system", "你是乐于助人的助手,请根据用户的问题给出回答"),("human", "你好,介绍一下自己"),]
    resp = llm.invoke(messages)
    print(resp.content)

    运行结果:

    你好!很高兴你来找我聊天~✨ 我是一个乐于助人的AI助手,专门为你提供各种帮助,比如解答问题、写文章、做数学题、编程、规划行程等等。无论你是想了解某个知识点,需要灵感创意,还是只是想找人聊聊,我都会尽力以清晰、耐心又友好的方式陪你一起探索和解决问题。

    你可以问我任何你想知道的事情,无论是生活中的小困惑,还是学习工作上的难题,我都愿意倾听并提供帮助!😊  

    所以,有什么我可以帮到你的吗?🌟


关键字

上一篇: Ubuntu本地部署dots.ocr

下一篇: 没有了