自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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

原创 [python]实现可以自动清除过期条目的缓存

本文讲述了如何实现一个简单的内存缓存,他可以把过期的键值自动清除,在缓存验证码等场合应该很好用。

2025-01-04 22:53:12 488

原创 [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`前端框架快速开发简单的web程序。

2024-12-19 16:09:55 138

原创 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

原创 创建vuetify3项目最快捷的方法

介绍我认为最快捷的创建vuetify3项目的方式。

2024-12-16 19:17:38 851

原创 基于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

Git-2.46.0-64-bit,windows 64位git客户端

Git-2.46.0-64-bit,windows 64位git客户端

2024-08-27

Bitwise SSH Client 9.39,免费的SSH客户端

这是一款非常好用的免费的SSH客户端,应该能成为您运维的好帮手。

2024-08-19

苏米团队账本 V0.51

这是一款非常实用的财务管理软件,它可以有效解决一般小团队的记账和按项目、人员考核以及成本分摊的问题,功能十分多样化。 主要功能包括: 1、记录和查询流水账 2、记录项目基本信息 3、跟踪项目应收应付 4、人员信息管理 5、按项目、按人员、按日期统计费用 该工具特点鲜明: 免费 所有功能都是免费使用的,没有任何附带条件。 绿色 下载后解压就能用,不喜欢用直接删掉即可,不需要安装,卸载,更不用担心它会偷偷的在您的操作系统里干些灰色的事情,也不用担心卸载不干净。 好用 软件是单机版,C/S结构,非专业财务人员不用经过任何指导就能上手使用。 V0.51 1、修复了流水中可能不显示项目名称的问题。 升级方法: 1、在程序根目录下把sumia.db备份出来,所有的数据都存储在这里面; 2、解压或者运行安装包; 3、把备份出来的sumia.db拷贝到新版本的根目录下,覆盖新版本的sumia.db; 4、启动新版本

2016-12-21

苏米团队账本

主要包含现金流水、应收应付以及按照项目、按照人员、按照日期的统计查询功能,解决了一般的小团队的记账和按项目、人员考核以及成本分摊的问题。

2016-11-25

cocos2d-x小游戏小狗快跑源码

cocos2d-x小狗快跑完整源码,其中的代码和资源仅供个人研究,请勿商用,谢谢。

2016-01-21

自制单选(radiobox)和多选(checkbox)控件

最近想学者用js做适合触摸的单选(radiobox)和多选(checkbox)控件,起因是:1、不想用就jQuery,因为用它就解决这么一个问题感觉有点像大炮打蚊子;2、想用css做出toggle switch那种感觉很困难,而且这种开关只支持开和关两种状态,如果有很多状态的话,就不好办了。 基本思路是在用一个div包住各选项,在div中防止N个label(别的控件也行)来做选项,每个选项的值用title属性代表,最终选择的结果则存储在该div的title中,模仿jQuery的基本思路,主要逻辑用javascript实现。

2014-06-07

使用Javascript实现遮屏效果

用js生成动态新的div,遮挡住当前屏幕。

2014-05-21

代码面试最常用的10大算法完整版

代码面试最常用的10大算法的中文完整版(部分中文,部分英文)及英文原版。

2014-05-20

.net的事件,委托和线程的关系代码

该样例代码展示了.net中事件和委托的基本用法,同时阐述了它们和线程之间的关系,最后用一个多线程的实例解决了并行发布/订阅处理消息的问题。

2013-05-02

SQLite使用代码示例(使用ASP.Net交互)

使用ASP.Net演示了开发中使用SQLite的基本方法,建议使用SQLite Developer管理SQLite数据库。

2012-12-02

cocos2d-x手机游戏开发 源代码

徐松林《cocos2d-x 手机游戏开发》练习时用的源代码,基于cocos2d-1.0.1-x-0.9.2,仅供参考。

2012-08-20

BugTracker.Net 3.5.7 中文版

BugTracker.Net 3.5.7是一款用.Net开发的开源bug管理工具,基于GNU通用公共许可证的条款,其突出特点是易于安装、简单实用,非常适合中小开发团队。 它有一个非常实用的截屏工具btnet_screen_capture,截图完毕后可直接上传bug信息。在对此工具进行简单配置以后,上传bug信息相当便捷高效。 如果您熟悉微软的开发工具,想找一款易用使用的bug管理工具,那么它非常适合您。 因为时间关系和作者水平有限,只是把绝大部分常用的功能汉化了,敬请谅解。

2012-06-20

在ASP.Net中通过cell-id和LAC获取位置信息

本示例代码展示了如何使用ASP.Net,通过Google Geolocation API Network Protocol,在知道cell-id和LAC的情况下,获取经纬度信息。

2010-12-30

MTK中使用socket实现http的get请求

自己写的http get的实现。希望能对初学者有所帮助,更希望牛人能对此提出好的建议。

2010-12-03

7-Zip超酷免费开源压缩工具

非常酷的免费的,开源的压缩工具,据说比WinRAR压缩比还大呢。

2010-11-03

SmartSniff

非常好用,小巧的一款网络抓包工具,尤其比较适合抓取HTTP数据包,对调试web应用非常有帮助。

2010-11-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除