本地大模型编程实战(11)用提示词提升与外部工具交互的能力并支持deepseek(2)

在使用 LLM(大语言模型) 时,经常需要调用一些自定义的工具方法完成特定的任务,比如:执行一些特殊算法、查询天气预报、旅游线路等。 很多大模型都具备使用这些工具方法的能力,Langchain 也为这些调用提供了便利。 之前的文章介绍了 llama3.1 与工具方法交互的实际例子,不过可惜 langchain 对 deepseek 支持还不够,导致: llm.bind_tools 根据用户问题生成的工具方法签名与 llama3.1 不同,在后续在调用工具方法时报错 deepseek 返回的结果中包含了思考过程内容,显然 Langchain 还不能正确解析出最终结果,这会导致 langchain 的很多方法不能正常运行 这次我们将尝试通过以下两种方法解决 Langchain 使用 deepseek 时产生的上述问题: 使用提示词让大模型推理调用工具的方法名称和参数 使用自定义的 JsonOutputParser 处理 deepseek 返回的信息 这里使用 llama3.1 和 deepseek 等不同模型做对比,并不是为了说明孰优孰劣,而是仅仅为了技术演示需要。 ...

二月 8, 2025 · 3 分钟 · 火云

本地大模型编程实战(10)与外部工具交互(1)

某些模型能够进行工具方法调用:生成用户自定义的方法的签名并调用它。一般来说,此交互过程主要包含下面几个步骤: LLM(大语言模型) 根据用户的问题推理生成调用工具方法的名称和参数 调用工具,返回简单的结果 再次调用 LLM ,生成自然流畅的回答 下面我们来说明这一过程。 应该是因为 langchian 对 deepseek 的支持还完善,使用 deepseek-r1 无法生成工具方法签名,使用 MFDoom/deepseek-r1-tool-calling:7b 可以生成工具方法签名,但是在调用工具方法时不成功。 所以本文仅使用 llama3.1。 ...

二月 7, 2025 · 2 分钟 · 火云

本地大模型编程实战(09)完善聊天机器人(3)

本文将实现一个比较完善的聊天机器人的主要功能。包括: 使用 LangGraph 构建聊天机器人 自动裁剪聊天历史 管理聊天会话的方法 以流的方式输出回复 我们将同时使用 llama3.1 和 deepseek 做演示。由于 langchain 可能对不同大模型支持程度不同以及其它限制,所以这个对比并不能说明哪个模型更好。 ...

二月 6, 2025 · 3 分钟 · 火云

本地大模型编程实战(08)用提示词改变聊天机器人的能力(2)

本文将演示使用大语言模型自制聊天机器人。主要的内容有: 使用 LangGraph 进一步完善聊天机器人 使用提示词改变 LLM 的能力 我们将同时使用 llama3.1 和 deepseek 做演示。由于 langchain 可能对不同大模型支持程度不同,不同大模型的特点也不同,所以这个对比并不能说明哪个模型更好。 ...

二月 5, 2025 · 4 分钟 · 火云

本地大模型编程实战(07)用langgraph自制聊天机器人(1)

本文将演示使用大语言模型自制聊天机器人。主要的内容有: 如何让机器人具有记忆 如何使用 langgraph 自动记录聊天历史 我们将同时使用 llama3.1 和 deepseek 做演示。由于 langchain 可能对不同大模型支持程度不同,不同大模型的特点也不同,所以这个对比并不能说明哪个模型更好。 ...

二月 4, 2025 · 4 分钟 · 火云