本地大模型编程实战(12)与外部工具交互时进行人工审核(3)

本文将实践如何在 LLM(大语言模型) 调用工具函数时进行审核,即由人来确定是否应该调用工具函数。 本次使用 llama3.1 和 MFDoom/deepseek-r1-tool-calling:7b 进行演练。 deepseek-r1 不支持 langchain 的 bind_tools 方法。 ...

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

本地大模型编程实战(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 分钟 · 火云

本地大模型编程实战(06)从文本中提取重要信息(2)

本文将演示使用大语言模型从文本中提炼结构化信息。这次我们不直接使用提示词,而是使用大模型的 few-shot prompting 特性,即使用很少的例子来引导大模型做推理。 我们将用 llama3.1 和 deepseek 做一个简单的对比。 由于 langchain 可能对不同大模型支持程度不同,不同大模型的特点也不同,所以这个对比并不能说明哪个模型更好。 ...

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

本地大模型编程实战(05)从文本中提取重要信息(1)

本文将演示使用大语言模型从文本中提炼结构化信息。 我们将用 llama3.1 和 deepseek 做一个简单的对比。 由于 langchain 可能对不同大模型支持程度不同,不同大模型的特点也不同,所以这个对比并不能说明哪个模型更好。 ...

一月 29, 2025 · 3 分钟 · 火云

本地大模型编程实战(04)给文本自动打标签

使用本地大模型可以根据需要给文本打标签,本文介绍了如何基于 langchain 和本地部署的大模型给文本打标签。 本文使用 llama3.1 作为本地大模型,它的性能比非开源大模型要查一下,不过在我们可以调整提示词后,它也基本能达到要求。 ...

一月 27, 2025 · 2 分钟 · 火云

本地大模型编程实战(03)用本地矢量数据库实现语义检索(2)

上一篇文章: 本地大模型编程实战(02)语义检索(1) 详细介绍了如何使用 langchain 实现语义检索,为了演示方便,使用的是 langchain 提供的内存数据库。 在实际工作中,更多的使用场景是将矢量化的数据物理存储下来,在查询的时候在从存储介质中读取矢量数据进行查询,不会每次使用矢量数据时都必须想做嵌入。 本文描述了如何使用 Chroma 对csv数据进行矢量化,并且将矢量存储在硬盘中,未来查询矢量数据时,直接从硬盘中读取矢量数据进行查询。 另外,如果数据量大一些,矢量化数据是很花时间的,我们将使用进度条显示嵌入csv的进度。 ...

一月 26, 2025 · 1 分钟 · 火云