langchain核心组件1-智能体
这里写目录标题简介基础使用静态模型使用动态模型简介langchain版本 v1.x在此版本中langchain可以创建一个智能体基础使用我日常使用因为是直接对话所以基本上只需要以下几个组件model 定义智能体大脑是大语言模型地址可以云也可以本地tools智能体可以使用的工具集合在使用中可以通过工具来实现用户需要middleware中间件类似于spring中的aop可以在中间拦截做对应业务处理例如权限prompt改写敏感词删选敏感数据清空等。system_prompt系统提示词类似于告诉llm它的角色是什么基本上同模型提示词越好agent效果越好checkpointer模型短期记忆模型因此可以实现短期记忆放内存还是放库里自行决定state_schema: 状态记录数属性里面可以放置一些需要的变量值打断点可以发现在runtime.state中chat_modelChatTongyi(modelqwen3-max)# 这里是各个langchain工具tools[None]middlewares[None]system_prompt你是一个智能助手要帮助用户解决问题response_format返回数据以json格式memoryInMemorySaver()# 使用示例if__name____main__:agentcreate_agent(modelchat_model,toolstools,system_promptsystem_prompt,middlewaremiddlewares,state_schemaAgentState,checkpointermemory)静态模型使用defstatic_model_agent(): 静态模型使用 :return: agentcreate_agent(modelchat_model)config:RunnableConfig{configurable:{thread_id:1}}responseagent.invoke({messages:你好我是张鹏},config)formessageinresponse[messages]:print(message.pretty_print())这是最简单的用法直接调用llm使用基础对话功能。动态模型defdynamic_model_agent(): 静态模型使用 :return: advanced_modelChatTongyi(modelqwen3-max)basic_modelChatTongyi(modelqwen3-max)wrap_model_calldefdynamic_model_selection(request:ModelRequest,handler)-ModelResponse:根据对话复杂性选择模型。message_countlen(request.state[messages])ifmessage_count10:# 对较长的对话使用高级模型new_requestrequest.override(modeladvanced_model)else:new_requestrequest.override(modelbasic_model)# 使用新请求调用处理器returnhandler(new_request)agentcreate_agent(modelbasic_model,# 默认模型middleware[dynamic_model_selection])responseagent.invoke({messages:你好我是张鹏})formsginresponse[messages]:print(msg.pretty_print())这里要使用动态模型就要使用wrap_model_call注解标识在request中修改替换model。这里尤其注意的是官方文档代码会执行报错ifmessage_count10:# 对较长的对话使用高级模型modeladvanced_modelelse:modelbasic_model request.modelmodelreturnhandler(request)这里会报错DeprecationWarning: Direct attribute assignment to ModelRequest.model is deprecated. Use request.override(model…) instead to create a new request with the modified attribute.request.model model原因ModelRequest 对象是不可变的immutable我们可以直接new一个新的赋值然后返回。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2449844.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!