langgraph集成大模型

        langgraph直接使用langchain中自带的库集成大模型。你可以完成大模型的初始化、对大模型进行配置、动态选择不同的模型。

    1.初始化大模型

        可以使用传统的方法初始化langgraph中使用的大模型,具体示例代码如下:

from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
    model = 'qwen-plus',
    api_key = "sk-*",
    base_url = "https://dashscope.aliyuncs.com/compatible-mode/v1")

        还可以使用init_chat_model初始化大模型,示例代码如下:

from langchain.chat_models import init_chat_model
import os
os.environ["OPENAI_API_KEY"] = "sk-*"

llm = init_chat_model(model='qwen-plus', model_provider='openai', base_url='https://dashscope.aliyuncs.com/compatible-mode/v1')

     2.使用大模型

        在工作流中直接使用完成初始化的大模型。

        在agent中使用大模型,可以在创建agent时直接传入完成初始化的大模型,示例代码如下:

from langgraph.prebuilt import create_react_agent

agent = create_react_agent(
   model=model,

   tools=*  #其他参数
)

       在langgraph还可以根据预设的条件动态选择大模型。以下代码初始化了两个大模型,一个是qwen-plus一个是deepseek-chat,在运行程序时可根据上下文选择使用哪个大模型,具体代码如下:

from dataclasses import dataclass
from typing import Literal
from langchain.chat_models import init_chat_model
from langchain_core.language_models import BaseChatModel
from langchain_core.tools import tool
from langgraph.prebuilt import create_react_agent
from langgraph.prebuilt.chat_agent_executor import AgentState
from langgraph.runtime import Runtime
from langchain_tavily import TavilySearch
import os
os.environ["OPENAI_API_KEY"] = "sk-*" #qwen的api_key

os.environ["TAVILY_API_KEY"] = "tvly-*"
tool = TavilySearch(max_results=2)
tools = [tool]
#使用上下文保存使用哪个大模型的配置
@dataclass
class CustomContext:
    provider: Literal["qwen", "deepseek"]

#初始化两个大模型
qwen_model = init_chat_model(model='qwen-plus', model_provider='openai', base_url='https://dashscope.aliyuncs.com/compatible-mode/v1')
deepseek_model = init_chat_model(model='deepseek-chat', model_provider='openai', base_url='https://api.deepseek.com', api_key='sk-*')


# Selector function for model choice
def select_model(state: AgentState, runtime: Runtime[CustomContext]) -> BaseChatModel:
    if runtime.context.provider == "qwen":
        model = qwen_model
    elif runtime.context.provider == "deepseek":
        model = deepseek_model
    else:
        raise ValueError(f"Unsupported provider: {runtime.context.provider}")

    # With dynamic model selection, you must bind tools explicitly
    return model.bind_tools(tools=tools)


# agent可根据上下文中的provider选择对应的大模型
agent = create_react_agent(select_model, tools=tools)

        调用agent时使用deepseek大模型:

output = agent.invoke(
    {
        "messages": [
            {
                "role": "user",
                "content": "who did develop you?",
            }
        ]
    },
    context=CustomContext(provider="deepseek"),
)

print(output["messages"][-1].text())

        输出如下:

I was developed by DeepSeek, a Chinese AI company. DeepSeek created me as part of their efforts in artificial intelligence research and development. The company focuses on creating advanced AI models and has been actively contributing to the AI field with various language models and AI technologies.

If you'd like more specific details about DeepSeek's development team or the company's background, I can search for more current information about them. Would you like me to do that?

      调用agent时使用qwen-plus大模型:

output = agent.invoke(
    {
        "messages": [
            {
                "role": "user",
                "content": "who did develop you?",
            }
        ]
    },
    context=CustomContext(provider="qwen"),
)

print(output["messages"][-1].text())

        输出如下:

I was developed by the Tongyi Lab team at Alibaba Group. This team brings together many researchers and engineers with expertise in artificial intelligence, natural language processing, and machine learning. If you have any questions or need assistance, feel free to ask me anytime!

     3.配置大模型

        配置大模型包括禁用大模型的流模式,实现容错和限流。

      3.1禁用流模式

        在初始化大模型时可禁用流模式:

qwen_model = init_chat_model(
    model='qwen-plus', 
    model_provider='openai', 
    base_url='https://dashscope.aliyuncs.com/compatible-mode/v1',
    disable_streaming=True
)

     3.2容错

        在初始化大模型时,可以指定后备模型,当本模型失效时,调用后备模型。如下代码以qwen作为主模型,deepseek作为后备模型。后备模型可以指定多个。

model_with_fallbacks = qwen_model.with_fallbacks([deepseek_model,])

    3.3限流

        在初始化大模型时,直接指定实现创建的限流器,实现限流,示例代码如下:

from langchain_core.rate_limiters import InMemoryRateLimiter


rate_limiter = InMemoryRateLimiter(
    requests_per_second=10,  # 每秒请求数
    check_every_n_seconds=0.1,  # 检测周期,此处为每秒检查10次
    max_bucket_size=10,  # 令牌桶最大值,也就是最大并发数
)

model = init_chat_model(
    model='qwen-plus', 
    model_provider='openai', 
    base_url='https://dashscope.aliyuncs.com/compatible-mode/v1',
    rate_limiter=rate_limiter
)

内容概要:本文介绍了一个基于多传感器融合的定位系统设计方案,采用GPS、里程计和电子罗盘作为定位传感器,利用扩展卡尔曼滤波(EKF)算法对多源传感器数据进行融合处理,最终输出目标的滤波后位置信息,并提供了完整的Matlab代码实现。该方法有效提升了定位精度与稳定性,尤其适用于存在单一传感器误差或信号丢失的复杂环境,如自动驾驶、移动采用GPS、里程计和电子罗盘作为定位传感器,EKF作为多传感器的融合算法,最终输出目标的滤波位置(Matlab代码实现)机器人导航等领域。文中详细阐述了各传感器的数据建模方式、状态转移与观测方程构建,以及EKF算法的具体实现步骤,具有较强的工程实践价值。; 适合人群:具备一定Matlab编程基础,熟悉传感器原理和滤波算法的高校研究生、科研人员及从事自动驾驶、机器人导航等相关领域的工程技术人员。; 使用场景及目标:①学习和掌握多传感器融合的基本理论与实现方法;②应用于移动机器人、无人车、无人机等系统的高精度定位与导航开发;③作为EKF算法在实际工程中应用的教学案例或项目参考; 阅读建议:建议读者结合Matlab代码逐行理解算法实现过程,重点关注状态预测与观测更新模块的设计逻辑,可尝试引入真实传感器数据或仿真噪声环境以验证算法鲁棒性,并进一步拓展至UKF、PF等更高级滤波算法的研究与对比。
内容概要:文章围绕智能汽车新一代传感器的发展趋势,重点阐述了BEV(鸟瞰图视角)端到端感知融合架构如何成为智能驾驶感知系统的新范式。传统后融合与前融合方案因信息丢失或算力需求过高难以满足高阶智驾需求,而基于Transformer的BEV融合方案通过统一坐标系下的多源传感器特征融合,在保证感知精度的同时兼顾算力可行性,显著提升复杂场景下的鲁棒性与系统可靠性。此外,文章指出BEV模型落地面临大算力依赖与高数据成本的挑战,提出“数据采集-模型训练-算法迭代-数据反哺”的高效数据闭环体系,通过自动化标注与长尾数据反馈实现算法持续进化,降低对人工标注的依赖,提升数据利用效率。典型企业案例进一步验证了该路径的技术可行性与经济价值。; 适合人群:从事汽车电子、智能驾驶感知算法研发的工程师,以及关注自动驾驶技术趋势的产品经理和技术管理者;具备一定自动驾驶基础知识,希望深入了解BEV架构与数据闭环机制的专业人士。; 使用场景及目标:①理解BEV+Transformer为何成为当前感知融合的主流技术路线;②掌握数据闭环在BEV模型迭代中的关键作用及其工程实现逻辑;③为智能驾驶系统架构设计、传感器选型与算法优化提供决策参考; 阅读建议:本文侧重技术趋势分析与系统级思考,建议结合实际项目背景阅读,重点关注BEV融合逻辑与数据闭环构建方法,并可延伸研究相关企业在舱泊一体等场景的应用实践。
### 使用 LangGraph大模型开发数据分析助理智能体 #### 背景与目标 LangGraph 是一种强大的工具,能够用于构建复杂的多智能体系统。它不仅提供了灵活的工作流设计能力,还允许开发者轻松集成多种模块化的功能组件[^1]。结合大模型的强大自然语言处理能力和数据分析能力,可以创建一个高效的数据分析助理智能体。 这种智能体的主要目标是帮助企业或个人快速完成数据清洗、探索性数据分析(EDA)、统计建模以及可视化展示等工作。以下是关于如何利用 LangGraph大模型技术来开发这样一个系统的详细介绍。 --- #### 工作流概述 为了实现数据分析助理的功能,整个工作流通常分为以下几个部分: 1. **用户交互接口** 用户可以通过自然语言提问的方式向系统发起请求,例如:“请帮我分析销售数据的趋势。” 这一阶段主要依赖于前端界面或者 API 接口接收输入,并将其传递给后端逻辑层进行解析和执行[^4]。 2. **任务分解与调度** 利用 LangGraph 提供的任务编排机制,将复杂的大规模问题拆解成多个子任务分别交给不同的 Agents 来解决。比如某些特定类型的计算可能更适合由擅长数值运算的小型专用模型负责;而对于涉及高层次理解的内容,则交予大型预训练语言模型去处理[^3]。 3. **数据获取与预处理** 数据源可能是本地文件上传、数据库查询结果或者是外部API调取得到的信息集合。无论哪种形式,在正式进入下一步之前都需要经过必要的清理操作——去除噪声项、填补缺失值等等。这部分也可以自动化地设置为独立节点运行在图结构当中[^2]。 4. **核心算法应用** 针对具体业务场景选用合适的机器学习方法论实施预测/分类等高级别决策制定过程。同时还可以引入解释性的图表生成服务以便让最终呈现出来的结论更加直观易懂[^1]。 5. **结果反馈** 最后一步就是把所有中间环节产生的有用信息汇总起来形成一份完整的报告文档返回给原始询问者查看。这期间同样需要用到一些模板渲染引擎配合自定义样式表单共同作用才能达到最佳视觉效果体验标准[^3]。 --- #### 技术栈推荐 - **编程语言**: Python (因其拥有丰富的库支持) - **框架**: LangChain / HuggingFace Transformers 等作为基础支撑平台 - **云服务平台选项**: AWS SageMaker, Google Cloud Vertex AI 或 Azure Machine Learning Services 可以为大规模分布式训练提供必要资源保障[^2] --- #### 实践案例分享 假设我们需要打造一款专注于电商领域的产品销量趋势洞察助手。那么按照前述提到的整体思路规划如下步骤即可达成目的: 1. 定义清晰的目标范围; 2. 收集相关历史交易记录明细资料; 3. 设计合理的特征工程方案提取有意义指标变量; 4. 训练回归类监督学习模型捕捉潜在规律模式; 5. 将所得成果封装进图形界面上线发布供实际使用者便捷访问查阅[^4]. --- ```python from langchain import PromptTemplate, LLMChain from langchain.llms import OpenAI def create_data_analysis_agent(): template = """You are a data analysis assistant. Given the following context about user's request and dataset information, generate an appropriate response that includes insights from exploratory data analysis. Context: {context} Dataset Info: {dataset_info} Response:""" prompt = PromptTemplate(template=template, input_variables=["context", "dataset_info"]) llm_chain = LLMChain(prompt=prompt, llm=OpenAI()) return llm_chain agent = create_data_analysis_agent() response = agent.run({"context": "Analyze sales trends.", "dataset_info": "Monthly revenue figures over past year."}) print(response) ``` --- ### 结语 通过以上描述可以看出,借助像 LangGraph 这样的先进工具和技术手段完全可以打造出满足不同行业需求特点的数据驱动型解决方案。希望这些指导能对你有所帮助! ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值