- 博客(49)
- 资源 (14)
- 收藏
- 关注
原创 本地大模型编程实战(27)初探langgraph的流式输出
对于 `LLM(大语言模型)`,流式传输已成为一种越来越受欢迎的功能。其理念是在 `LLM` 生成令牌时就快速返回,而不是等待创建完整响应后再返回全部内容。对于简单的场景,流式传输实际上非常容易实现,但当涉及到智能体之类的应用时,它会变得复杂,这些智能体有自己的运行逻辑,可能会阻止我们尝试进行流式传输。本文将探讨 `langchain` 的流式输出,后面将实现**智能体最终结果的流式输出**。
2025-02-28 16:38:20
1098
原创 本地大模型编程实战(26)用langgraph实现基于SQL数据构建的问答系统(5)
本文将将扩展上一篇文章完成的 `langgraph` 链,继续使用基于 `langgraph` 链 ,对结构化数据库 `SQlite` 进行查询的方法。该系统建立以后,我们不需要掌握专业的 `SQL` 技能,可以用自然语言询问有关数据库中数据的问题并返回答案。主要完善一下两点内容: - 自动记录消息历史- 增加人工审核环节,防止 `LLM(大语言模型)` 运行危险的SQL语句
2025-02-28 16:32:10
843
原创 本地大模型编程实战(25)用langgraph实现基于SQL数据构建的问答系统(4)
本文将演练使用基于 `langgraph` 链 ,对结构化数据库 `SQlite` 进行查询的方法。该系统建立以后,我们不需要掌握专业的 `SQL` 技能,可以用自然语言询问有关数据库中数据的问题并返回答案。 使 `大语言模型(LLM)` 查询结构化数据与非结构化文本数据有所不同。查询非结构化数据时,通常需要将待查询的文本嵌入到向量数据库中;而查询结构化数据的方法则是让 `LLM` 编写和执行 `DSL`(例如 SQL)进行查询。
2025-02-26 09:23:02
1094
原创 本地大模型编程实战(24)用智能体(Agent)实现智能纠错的SQL数据库问答系统(3)
本文将实现这样一个 `智能体(Agent)` :- 可以使用自然语言对 `SQLite` 数据库进行查询。即:用户用自然语言提出问题,智能体也用自然语言根据数据库的查询结果回答问题。- 增加一个自动对查询中的专有名词进行纠错的工具,这将明显提升查询的准确性。
2025-02-26 09:19:21
1099
原创 本地大模型编程实战(23)用智能体(Agent)实现基于SQL数据构建问答系统(2)
本文将用 `智能体(Agent)` 实现对 `SQLite` 数据库的查询:用户用自然语言提出问题,智能体也用自然语言根据数据库的查询结果回答问题。
2025-02-25 14:39:02
1064
原创 本地大模型编程实战(22)用langchain实现基于SQL数据构建问答系统(1)
使 `LLM(大语言模型)` 系统能够查询结构化数据与非结构化文本数据在性质上可能不同。后者通常生成可在向量数据库中搜索的文本,而结构化数据的方法通常是让 `LLM` 编写和执行 `DSL`(例如 SQL)中的查询。 我们将演练在使用基于 `langchain` 链 ,在结构化数据库 `SQlite` 中的数据上创建问答系统的基本方法,该系统建立以后,我们用自然语言询问有关数据库中数据的问题并返回自然语言答案。
2025-02-25 14:36:48
1338
原创 本地大模型编程实战(21)支持多参数检索的RAG(Retrieval Augmented Generation,检索增强生成)(5)
在实现 `RAG(Retrieval Augmented Generation,检索增强生成)` 系统的时候,在检索(retrieve)知识库时通常一个参数。 本文将演练更复杂一点的情况:通过两个参数进行知识库的检索。为此会在 `langgraph`链 中增加一个 `analyze_query` 节点,它用来基于用户问题推理检索的参数。
2025-02-24 11:23:12
858
原创 本地大模型编程实战(20)用langgraph和智能体实现RAG(Retrieval Augmented Generation,检索增强生成)(4)
上一篇文章我们演练了一个 [用 `langgraph` 实现的 `RAG(Retrieval Augmented Generation,检索增强生成)` 系统]。本文将要在此基础上,增加自动记录聊天历史的功能,另外,我们还将使用一个 `Agent(智能体)` 来实现几乎同样的功能,我们来一起体会一下用 `langgraph` 和 `Agent(智能体)` 实现 `RAG系统` 的区别。
2025-02-24 11:18:48
1970
原创 本地大模型编程实战(19)RAG(Retrieval Augmented Generation,检索增强生成)(3)
上一篇文章我们演练了一个 [用 `langgraph` 实现的 `RAG(Retrieval Augmented Generation,检索增强生成)` 系统](http://wfcoding.com/articles/practice/0318/)。本文将要创建的系统将更加智能:如果在知识库中未找到靠谱的文档,则用 `LLM(大语言模型)` 自身的能力弥补。
2025-02-16 20:59:00
1224
原创 本地大模型编程实战(18)RAG(Retrieval Augmented Generation,检索增强生成)(2)
本文将使用 `langgraph` 实现一个简单的 `RAG(Retrieval Augmented Generation,检索增强生成)` 系统。> 使用 `qwen2.5` 、 `deepseek-r1` 以及 `llama3.1` 做实验,用 `shaw/dmeta-embedding-zh` 做中文嵌入和检索。
2025-02-16 16:31:20
920
原创 本地大模型编程实战(17)RAG(Retrieval Augmented Generation,检索增强生成)(1)
本文将用实际代码演练一个简单的 `RAG(Retrieval Augmented Generation,检索增强生成)` 系统。> 我们将使用 `qwen2.5` 、 `deepseek-r1` 以及 `llama3.1` 做实验,用 `shaw/dmeta-embedding-zh` 做中文嵌入和检索。
2025-02-16 11:56:11
1040
原创 本地大模型编程实战(16)初探智能体Agent(3)
本文将基于上一篇文章完善 `Agent(智能体)` ,主要完善的功能有: - 跟踪 `Agent(智能体)` 的执行过程- 记录消息历史> 此次我们使用 `qwen2.5` 做 `LLM(大语言模型)` 驱动 `Agent(智能体)` ,使用 `shaw/dmeta-embedding-zh` 做中文嵌入和检索。<!--more-->## 准备在正式开始撸代码之前,需要准备一下编程环境。1. 计算机 本文涉及的所有代码可以在**没有显存**的环境中执行。 我使用的机器配置为:
2025-02-14 20:39:59
998
原创 本地大模型编程实战(15)初探智能体Agent(2)
在上一篇文章中,我们实践了如何使用 `langchain` 创建一个简单的 `ReAct Agent(智能体)`,这次我们升级一下玩法:实现一个可以调用两个 工具 的智能体。 其中一个工具用户查询天气预报,另外一个工具用来查询知识库,实际上该工具实现了 `RAG(Retrieval Augmented Generation,检索增强生成)`。
2025-02-14 20:38:02
937
原创 本地大模型编程实战(14)初探智能体Agent(1)
在前面的文章中,我们了解了 `LLM(大语言模型)` 如何使用 `tool(工具)` ,现在我们开始进一步,初探 `Agent(智能体)` 的玩法。 其中的 `tool(工具)` 用于从矢量数据库中查询信息,这种方式在 `RAG(Retrieval Augmented Generation,检索增强生成)` 也很常用。在这种场景中,能否准确的查询出有用信息很关键,为此我们本次将使用多种大模型进行对比演练。
2025-02-11 19:04:01
969
2
原创 本地大模型编程实战(13)与外部工具交互(4)
在使用 `LLM(大语言模型)` 调用工具方法时,可能会在运行时才会将类似 用户ID 的数值传递给工具。 大多数情况下,此类值不应由 `LLM` 控制。允许 `LLM` 控制 用户ID **可能会导致安全风险**。 相反,`LLM` 应该只控制本应由 `LLM` 控制的工具参数,而其他参数(如用户ID)应由应用程序逻辑固定。本文将向您展示:如何防止模型生成某些工具参数并**在运行时直接注入**它们。
2025-02-11 18:57:27
743
原创 本地大模型编程实战(12)与外部工具交互(3)
本文将实践如何在 `LLM(大语言模型)` 调用工具函数时进行审核,即由人来确定是否应该调用工具函数。> 本次使用 `llama3.1` 和 `MFDoom/deepseek-r1-tool-calling:7b` 进行演练。 `deepseek-r1` 不支持 `langchain` 的 bind_tools 方法。
2025-02-09 11:26:28
649
原创 本地大模型编程实战(11)与外部工具交互(2)
在使用 `LLM(大语言模型)` 时,经常需要调用一些自定义的工具方法完成特定的任务,比如:执行一些特殊算法、查询天气预报、旅游线路等。 很多大模型都具备使用这些工具方法的能力,`Langchain` 也为这些调用提供了便利。
2025-02-09 11:24:31
1893
原创 本地大模型编程实战(10)与外部工具交互(1)
某些模型能够进行工具方法调用:生成用户自定义的方法的签名并调用它。一般来说,此交互过程主要包含下面几个步骤:- `LLM(大语言模型)` 根据用户的问题推理生成调用工具方法的名称和参数- 调用工具,返回简单的结果- 再次调用 `LLM` ,生成自然流畅的回答
2025-02-07 17:47:55
483
原创 本地大模型编程实战(09)自制聊天机器人(3)
本文将实现一个比较完善的聊天机器人的主要功能。包括:- 使用 `LangGraph` 构建聊天机器人- 自动裁剪聊天历史- 管理聊天会话的方法- 以流的方式输出回复
2025-02-07 17:41:31
1978
原创 本地大模型编程实战(08)自制聊天机器人(2)
本文将演示使用大语言模型自制聊天机器人。主要的内容有:- 使用 `LangGraph` 进一步完善聊天机器人- 使用提示词改变 `LLM` 的能力
2025-02-05 13:56:19
513
原创 本地大模型编程实战(07)自制聊天机器人(1)
本文将演示使用大语言模型自制聊天机器人。主要的内容有:- 如何让机器人具有记忆- 如何使用 `langgraph` 自动记录聊天历史
2025-02-05 13:53:00
831
原创 本地大模型编程实战(06)从文本中提取重要信息(2)
本文将演示使用大语言模型从文本中提炼结构化信息。这次我们不直接使用提示词,而是使用大模型的 `few-shot prompting` 特性,即使用很少的例子来引导大模型做推理。 我们将用 `llama3.1` 和 `deepseek` 做一个简单的对比。 > 由于 `langchain` 可能对不同大模型支持程度不同,不同大模型的特点也不同,所以这个对比并不能说明哪个模型更好。
2025-02-04 11:49:22
828
原创 本地大模型编程实战(05)从文本中提取重要信息(1)
本文将演示使用大语言模型从文本中提炼结构化信息。 我们将用 `llama3.1` 和 `deepseek` 做一个简单的对比。> 由于 `langchain` 可能对不同大模型支持程度不同,不同大模型的特点也不同,所以这个对比并不能说明哪个模型更好。
2025-02-04 11:46:06
767
原创 本地大模型编程实战(04)给文本自动打标签
使用本地大模型可以根据需要给文本打标签,本文介绍了如何基于 `langchain` 和本地部署的大模型给文本打标签。> 本文使用 `llama3.1` 作为本地大模型,它的性能比非开源大模型要查一下,不过在我们可以调整提示词后,它也基本能达到要求。
2025-01-27 19:54:26
890
原创 本地大模型编程实战(03)语义检索(2)
本文描述了如何使用 `Chroma` 对csv数据进行矢量化,并且将矢量存储在硬盘中,未来查询矢量数据时,直接从硬盘中读取矢量数据进行查询。 另外,如果数据量大一些,矢量化数据是很花时间的,我们将使用进度条显示嵌入csv的进度。
2025-01-26 23:40:46
865
原创 本地大模型编程实战(02)语义检索(1)
本文描述了如何使用 `langchain` 和 `大语言模型` 以及 `矢量数据库` 完成pdf内容的语义检索。 在对内容进行矢量化时使用了 `nomic-embed-text`,这个模型个头小,英文嵌入效果不错。 后面还将涉及到以下内容:- 文档和文档加载器- 文本分割器- 嵌入- 向量存储和检索器
2025-01-25 19:32:14
870
原创 本地大模型编程实战(01)实现翻译功能
本文描述了如何使用大语言模型(`LLM`)实现基本的翻译功能,此翻译功能的特点是:无需指定源语言,只需要指定目标语言就可以进行翻译了。
2025-01-24 22:38:35
970
原创 用图形验证码增强用户认证安全性[python+vuetify]
这里通过代码讲述了使用`python`生成以及校验图片验证码,增强用户认证安全性的过程。 客户端则使用 `vue3` 和 `vuetify3` 框架使用后台API生成的图片验证码。
2025-01-05 12:56:19
615
原创 [Elasticsearch]使用search_after实现深度分页[附源码]
`elasticsearch` 在使用 from + size 这种方式进行分页查询时,因为 `index.max_result_window` 的默认值是 10K,所以当查询的文档超过第10K个文档时,会报错:Result window is too large... 当然,我们可以调整`index.max_result_window`的大小,不过这种办法会导致查询效率降低和内存占用增加。本文讲述了在 `elasticsearch` 中包含几十万乃至上百万的大数据量时,使用 `search_afte
2025-01-02 08:58:08
530
原创 基于OAuth2.0和JWT规范实现安全易用的用户认证
遵循`OAuth2.0`和`JWT`规范实现用户认证,不但具有很好的实用性,还能提供很不错的安全保障。 本文结合实用的代码讲述了基于`OAuth2.0`和`JWT`,在前后端分离的系统中,实现用户使用方便而又安全可靠的用户认证的基本思路。
2025-01-01 18:48:58
1030
原创 vuetify3入门实战:开发一个待办事项系统
这是使用`vuetify3`可以开发的一个待办事项管理实例。 它主要包含事项概览、我的项目、我的团队。其中事项概览中以列表的方式列出所有的事项,在这里可以添加事项、对事项进行排序。
2024-12-19 15:53:32
901
原创 vuetify3入门实战:实现登录功能
这是使用vuetify3可以开发的一个登录实例。 它包含了一个经典的包含系统消息、登录按钮、更换主题按钮的工具栏(toolbar)、轮播(carousel)和登录表单控件。
2024-12-18 23:28:46
1240
原创 vuetify3入门实战:做简单的相册
这是使用vuetify3可以开发的一个简单的相册,通过菜单可以控制相册以彩色或者黑白方式显示。 在这个例子中,我们主要使用 抽屉式导航(Navigation drawers) 做导航,使用栅格(Grids)显示相册图片。
2024-12-16 19:36:47
1011
原创 基于FastAPI使用JWT技术实现的OAuth2用户认证接口
本文阐述了如何基于FastAPI框架实现OAuth2用户认证,其中使用哈希算法对密码进行了加密,使用JWT持有令牌。 附带完整的代码,避免大家再次踩坑。
2024-12-01 15:45:42
1120
原创 基于FastAPI实现简单的微服务API网关
本文阐述了基于FastAPI实现一个API网关的详细步骤。这样未来可以不断的在服务端像搭积木一样添加各种服务。 我们即将实现下面的简单的微服务架构,目前它只实现了请求转发功能。
2024-11-14 13:10:47
732
原创 用FastAPI和langchain做本地大模型的API
本文讲述了如何使用FastAPI和langchain框架,包装本地大模型llama3.1,实现语言翻译功能的API。 相对于Flask,使用FastAPI做接口要简便得多。
2024-11-05 19:28:12
1092
原创 使用Flask做langchain的API
本文讲述了如何使用一个利用本地大模型llama3.1实现语言翻译功能的API。 它用flask很轻松的将langchian服务开放为API,结合flasgger给文档添加注释并生成playground,并且使用jsonschema做json数据校验,轻松验证接口参数。
2024-11-03 12:53:11
962
苏米团队账本 V0.51
2016-12-21
自制单选(radiobox)和多选(checkbox)控件
2014-06-07
BugTracker.Net 3.5.7 中文版
2012-06-20
在ASP.Net中通过cell-id和LAC获取位置信息
2010-12-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人