SuperAPI AI 工具集

langchain-content-blocks

编程与开发

查看项目

更新于 10-15 23:26

技能介绍

用途:解决 LangChain 1.0 中 AIMessage.content 在不同提供商下形态不一致带来的问题,如 Claude 纯文本也返回 list[dict]、多模态块结构差异、思考块重放缺签名、强制 tool_choice 导致死循环等。

主要能力:梳理六类内容块(text、tool_use、tool_result、image、thinking、document)及其流式行为;提供安全遍历混合内容的写法;给出跨提供商的通用 image 块形状(source_type、data、mime_type);说明 tool_use 的 ID、args 与流式增量处理;讲解 thinking 块签名保留与多轮重放;介绍 document 块与 Claude citations 提取。

用法要点:用 msg.text()、msg.tool_calls、msg.usage_metadata 处理常规场景;需要保序、读引用或重放思考块时手动遍历 content。多模态消息 content 须为 list[dict],图片块放在指令之前;工具调用经 msg.tool_calls 往返,tc["id"] 原样复制到 ToolMessage;流式时用 tool_call_chunks 缓冲、在 on_chat_model_end 解析一次。启用 extended thinking 时须原样回传整个 AIMessage,并可用 messages_to_dict 持久化。

限制:需 Python 3.10+、langchain-core >=1.0 <2.0 及至少一个提供商包;Anthropic 单图 5 MB、最多 20 图,OpenAI 单图 20 MB,Gemini 单请求 20 MB;思考块与引用功能依赖特定模型。