Minimax 与 LangChain 集成的完整代码示例
可实现Minimax与LangChain集成的三种路径:一、自定义MinimaxLLM类继承BaseLLM;二、用RunnableLambda封装同步请求函数;三、基于ChatMinimax封装兼容ChatModel协议的对话类。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜
如果您希望将 Minimax 大模型与 LangChain 框架结合使用,但尚未找到可直接运行的集成示例,则可能是由于官方未提供原生适配器且需手动封装调用逻辑。以下是实现该集成的三种互不依赖的技术路径:
一、自定义 MinimaxLLM 类继承 BaseLLM
通过继承 LangChain 的 BaseLLM 抽象基类,实现 predict、_call 等必需方法,使 Minimax API 调用行为符合 LangChain 统一接口规范,从而支持 Chain、Agent 等高级组件。
1、创建 minimax_llm.py 文件,定义 MinimaxLLM 类,导入 langchain_core.language_models.base 中的 BaseLLM 与 langchain_core.outputs 中的 Generation。
2、在 __init__ 方法中传入 api_key、model(如 abab6.5s)、base_url(如 https://api.minimax.chat/v1)并保存为实例属性。
3、重写 _call 方法:构造符合 Minimax 文本生成接口要求的 JSON 请求体,包含 prompt、role_meta、bot_setting 等字段,并使用 requests.post 发起同步请求。
4、解析响应中的 choices[0].message.content 字段,提取纯文本结果并返回。
5、在 _generate 方法中,对输入 prompts 列表逐个调用 _call,将结果包装为 Generation 对象列表并返回 LLMResult 实例。
二、使用 RunnableLambda 封装同步请求函数
利用 LangChain 的 RunnableLambda 构建轻量级可执行单元,绕过 LLM 类继承体系,直接将原始 HTTP 调用逻辑接入 Runnable 流水线,适用于简单 Prompt 链或单步推理场景。
1、定义一个名为 minimax_invoke 的函数,接收字符串 input 作为用户消息,内部构造含 system_prompt 和 user_prompt 的 messages 列表。
2、使用 requests.post 向 Minimax 接口提交数据,设置 headers 包含 Authorization: Bearer your_minimax_api_key 与 Content-Type: application/json。
Giiso写作机器人
Giiso写作机器人,让写作更简单
下载
3、检查响应状态码是否为 200,若非则抛出 ValueError 并提示 API 请求失败,请检查密钥与网络连接。
4、从响应 JSON 中提取 reply 字段内容,作为函数返回值。
5、将该函数传入 RunnableLambda() 初始化,并可后续与 PromptTemplate 或 StringOutputParser 组合使用。
三、基于 ChatMinimax 实现兼容 ChatModel 的封装
针对需要多轮对话记忆、角色切换或 message history 管理的场景,构建符合 LangChain ChatModel 协议的封装类,使其支持 AIMessage、HumanMessage 等标准消息类型序列。
1、新建 chat_minimax.py,继承 langchain_core.chat_models.base 中的 BaseChatModel。
2、在 _generate 方法中,遍历输入的 messages 参数,将 HumanMessage 映射为 role=user、AIMessage 映射为 role=assistant,并保留最后一条消息作为当前 query。
3、构造 bot_setting 字典,包含 name 和 description 字段,确保 response 中携带 bot_name 以区分角色。
4、发起 POST 请求时,在 payload 中嵌入 messages 列表及 bot_setting,启用 stream=False 保证响应完整性。
5、解析返回的 choices[0].messages 字段,筛选出 role=assistant 的消息,提取 content 值并构造成 AIMessage 对象返回。