- 博客(191)
- 收藏
- 关注
原创 LlamaIndex 实现 RAG(二)- 文档解析
本文对 LlamaIndex 中文档的索引进行了介绍,包括不同文档使用不同解析方式,文档的处理在 RAG 中起到了关键作用,对文档的分块策略也会直接影响到 RAG 的搜索效果,在落地开发中要根据自己的业务场景进行设计。
2024-08-24 13:34:03
432
原创 LlamaIndex 实现 RAG (一)
本文简单实现 RAG 的流程,并实现了可视化页面,关于文档的切分以及 RAG 不同组件的详细讲解,会在后续文章继续分享。代码地址:https://gitcode.com/hawk2014bj/llamaindex/overview源代码也可以从资源中下载。
2024-08-22 18:03:08
723
原创 LlamaIndex 介绍
有没有其他相对容易并节省资源的方式呢?检索 (Retrieval): 根据用户输入查询,从知识库中检索相关的文档或段落。增强 (Augmentation): 将检索到的信息与输入内容结合,提供额外的上下文。生成 (Generation): 语言模型利用输入和检索到的信息生成回答。通过以上这三步,借助外部知识的填充,模型就是根据最新的上下文信息对数据进行回答。
2024-08-21 21:16:18
520
原创 LVM 使用以及配置
LVM 是一个强大的分区管理工具,后续存储空间的调整非常容易,在应用的初期,我们先规划少量的存储,如果后期需求增大,可以申请硬盘并进行动态扩容。
2024-08-20 17:22:46
357
原创 2 种方式申请免费 SSL 证书,阿里云 Certbot
Aliyun 和 Certbot 都可以申请三个月的免费域名,如果觉得 UI 操作麻烦,可以使用Certbot 命令行。通过命令行定时任务刷新证书,免去了 UI 操作和手动证书更新的过程。
2024-08-18 19:31:08
383
原创 Fast API + LangServe快速搭建 LLM 后台
Langchain 整个技术栈使用起来都很方便,无论是接入模型、监控还是对外服务,如果需要监控提示词,可以接入 LangSmith。
2024-08-16 17:32:34
241
原创 Gradio 复杂布局的实现
Gradio 复杂布局通过行列嵌套 Block 实现,除了 Block 布局,Gradio 也支持自定义组件,组件的开发方式在下篇文章中进行介绍。
2024-08-15 16:56:27
274
原创 Gradio 快速开发网页应用
Gradio 做简单的 Demo 效率非常高,简单的几行代码就可以实现一个有些交互的 Demo,Gr.Interface 是一种用法,Gradio 中还有其他很多用法,例如 ChatInterface、Block 等等,可以生成相对复杂的页面。
2024-08-11 22:56:19
212
原创 LlamaIndex 实现 React Agent
LlamaIndex 通过提示词将问题与工具进行关联,通过多轮推理得到最终答案。核心还是在提示词,无论 RAG 还是 Agent,都是作为桥梁,底层逻辑还是通过提示词的方式把大模型的能力外部应用能力打通并进行整合。
2024-08-05 22:47:26
426
原创 Monaco 使用 TypeDefinitionProvider
Monaco 中的 TypeDefinitionProvider 和 ImplementationProvider、DefinitionProvider 类似,右键点击变量名称,现在 “选择转到类型定义”, 跳到指定位置。通过 registerTypeDefinitionProvider 添加 TypeDefinitionProvider 处理方法。实现 provideTypeDefinition 并返回 Definition。Definition 中定义了跳转位置。
2024-08-03 20:19:05
193
原创 使用 ModelScope 本地部署图片变视频模型
ModelScope 最大的优点就是安装了所有运行模型需要的依赖库,可以说是一键运行。下载模型速度也非常快,能够快速体验所有的模型,如果本地没有资源也可以是使用 ModelScope 提供的工作空间,需要付费。本文使用的环境操作系统 Ubuntu、GPU 2080ti 22G。
2024-08-02 12:18:18
383
原创 Monaco 使用 SignatureHelpProvider
Monaco 中 SignatureHelpProvider 是方法提示说明,当敲入方法名时,系统会提示方法名称和对应的参数信息。通过 registerSignatureHelpProvider 实现 SignatureHelpProvider 处理函数。实现 signatureHelpTriggerCharacters 和 provideSignatureHelp。
2024-08-02 11:53:13
231
原创 Monaco 使用 SelectionRange
Monaco 可以自定义选择范围,通过 registerSelectionRangeProvider 注册 selectionRangeProvider 处理函数。实现 provideSelectionRanges 并返回选择范围。返回位置信息 SelectRange。
2024-08-01 18:41:02
166
原创 Monaco 使用 RenameProvider
Monaco 重命名是编辑器标配,可以重命名变量名称。重命名包括两部分,首先是列出 Rename 的名称,第二步是重命名后文字和对应位置信息,用于替换。先看一下效果:通过 registerRenameProvider 注册 RenameProvider 的处理函数。右键变量名称点击重命名,resolveRenameLocation 返回名称,provideRenameEdits 返回最终更新文字和对应的位置信息。
2024-07-30 23:59:57
168
原创 Monaco 使用 ReferenceProvider
Monaco ReferenceProvider 是指引用跳转,用户可以右键点击变量名称,可以跳转列表进行选择,选择之后跳转到对应位置的功能。通过 registerReferenceProvider 注册 ReferenceProvider 实现函数。实现 provideReferences 并返回可跳转位置。
2024-07-29 13:52:12
211
原创 Monaco 使用 OnTypeFormattingEditProvider
首先需要自定义需要配置的语言,例如 mySpecialLanguage。
2024-07-28 14:35:31
171
原创 Monaco 使用 NewSymbolNameProvider
Monaco 中这个 newSymbol 是个新功能,VSCode 都没看到这个功能(可能是需要开启),当重命名变量名时,可以返回更多的选项,像是为 AI 准备的。先看一下这个效果,右键点击函数名选择 “重命名”,列表会显示自定义函数返回的名称列表。通过 registerNewSymbolNameProvider 注册自定义函数。返回 NewSymbolName,newSymbolName 是新变量的名称。实现 provideNewSymbolNames 返回 Symbol 列表。
2024-07-27 14:34:04
162
原创 Ollama Linux 升级
Ollama 是一个开源的 LLM 部署工具,一键部署,超级好用,在 Mac 上支持自动更新,但是到了 LInux 就有些麻烦了,本文讲述如何在 Linux 下更新 Ollama。
2024-07-27 08:55:11
394
原创 Monaco 使用 LinkedEditingRangeProvider
Monaco LinkEdit 功能是指同时修改同样的字符串,例如在编辑 Html 时,修改开始标签时会同时修改闭合标签。Monaco 支持自定义需要一起更新的字符串列表。首先,通过 registerLinkedEditingRangeProvider 注册 LinkEdit 处理函数。修改对应配置信息, linkEditing 默认为关闭状态,需要在配置中进行开启。实现 provideLinkedEditingRanges 并返回位置信息。返回需要同步修改的位置信息。
2024-07-26 13:38:04
244
原创 Monaco 使用 LinkProvider
通过 registerLinkProvider 注册 LinkProvider。实现 Provider 方法,并返回 LinkList。
2024-07-25 14:19:26
210
原创 Monaco 使用 InlayHintsProvider
Monaco 中使用 InlayHints,InlayHints 可以在指定位置添加一段提示,如下图,可以看到参数名字名字显示在参数值左侧。VSCode 中 InlayHints 默认是关闭,需要在设置中打开。实现 provideInlayHints 并返回 InlayHintList,InlayHintList 对象中包含 InlayHint[] 字段。InlayHint 中包含两个必填字段 label 和 position,分别为 Hint 的描述和位置信息。
2024-07-24 18:10:37
124
原创 Monaco 使用 ImplementationProvider
Monaco 使用 ImplementationProvider 实现 “跳转实现”,“跳转实现” 是指右键点击关键字并选择 “转到实现”,例如点击 Interface 的名字,可以跳转的实现 Class 的位置,这个和Definition / Declaration 类似,具体跳转到哪里由代码实现。实现 provideImplementation,根据选中的关键字,跳转到目标位置,跳转信息保存在 Definition。返回跳转位置信息,Location 对象中定义文件链接和位置信息。
2024-07-23 14:55:55
216
原创 Monaco 使用 HoverProvider
Monaco 中自定义 Hover,Hover 效果是指当鼠标移动文字上展示出提示效果,就像页面上的 Tooltip 效果。通过 registerHoverProvider 注册 Hover 触发时的处理方法。返回 Hover 内容和 Hover 显示位置。接口中提供了 4 个参数,前两个参数比较重要。
2024-07-22 16:10:56
266
原创 Monaco 使用 SemanticTokensProvider
Monaco 中可以对关键字进行高亮的自定义,通过提供关键字位置信息和关键字颜色进行实现,先看一下效果,这里自定了 zzz 为关键字,背景色为绿色。通过 registerDocumentSemanticTokensProvider 进行注册。
2024-07-21 12:17:44
343
原创 Monaco 使用 SymbolProvider
Monaco 中提供一个搜索符号的功能,可以快速跳转到指定符号的位置,可以通过实现 SymbolProvider 实现自定义的 Symbol,如下图,function1 是自定义的符号,当进入符号列表时可以看到 “a1"。通过 registerDocumentSymbolProvider 注册自定义 Symbol 方法。实现 provideDocumentSymbols 并返回 Symbols 列表。DocumentSymbol 包含的主要属性。
2024-07-19 15:51:17
190
原创 Monaco 使用 FoldingRangeProvider
Monaco 中支持代码折叠功能,FolderRangeProvider 是一个通知功能,编辑文档会根据大括号的范围进行折叠,也就是可折叠区域都是以左大括号开始,右大括号结束,当折叠区域发生变更时,内部方法会被调用。registerFoldingRangeProvider 可以返回折叠区域,返回的区域会编辑器左侧进行展示。通过 registerFoldingRangeProvider 进行注册,实现 Provider 方法。
2024-07-18 21:39:02
235
原创 Monaco 使用 DocumentHighlightProvider
代码实现如下, 代码有个 DocumentHighlightKind 枚举类,包括 Text、Read 和 Write,从效果上来看没有啥区别。Monaco 默认就有这个功能,可以根据具体需求进行定制。通过 registerDocumentHighlightProvider 进行注册。实现 provideDocumentHighlights 方法,返回 DocumentHighlight 数组。
2024-07-17 19:02:29
205
原创 Monaco 使用 DocumentFormattingEditProvider
在 Monaco 通过 registerDocumentFormattingEditProvider 方法注册处理函数,实现 provider 方法。代码实现如下,如果要格式化代码,需要做代码解析,生成语法树,并进行换行等处理。这里只是个简单的示例。文档格式化,是 VSCode 比较常用的功能,在文档上点击右键选择格式化文档。有需要的同学可以参考 Prettier 的 Html Formatter。TextEdit 包含两个字段:格式化后的代码和代码区域。provider 方法返回格式化好的代码。
2024-07-16 17:08:04
148
原创 vscode 中调整滚动条大小
vscode 文件 tab 下的滚动条特别小,非常难用,网上找了一下,vscode 有个配置可以调整滚动调大小。设置方法,在 vscode 配置中搜索 titleScrollbarSizing,设置为 Large。最终效果,宽了很多,操作容易多了。
2024-07-16 10:13:27
261
原创 Monaco 使用 DeclarationProvider
Monaco 中使用 DeclarationProvider,Declaration(声明) 是定义,就像方法的定义,Definition(定义) 是实现,例如 function 的实现。注册 DeclarationProvider 和 注册 DefinitionProvider 接口参数和返回值都是一致的。在方法上点击 Definition。返回 Definition。实现代码, 返回值为。
2024-07-14 21:55:53
226
原创 Monaco 使用 CompletionItemProvider
Monaco 中 CompletionItemProvider 为代码进行提示时提供数据,和很相似只是显示方式不一样,一个是行内一个是弹框。先看一下显示效果:provideCompletionItems 需要实现两个方法。
2024-07-13 18:54:48
400
原创 Monaco 使用 ColorProvider
调色板是 Monaco-Editor 中一个特别的组件,通过两个方法实现呼出调色板,provideColorPresentations 显示调色窗口,provideDocumentColors 监听页面的变更,如果是色值(根据正则去判断)就在字符串前添加颜色块。Manco 中可以使用调色板对色值进行修改,首先看一下调色版效果。
2024-07-12 17:30:27
161
原创 Monaco 使用 DefinitionProvider
DefinitionProvider 可以弹出方法定义,效果如下,按住 command + 鼠标左键,弹出方法说明。点击时 Monaco Editor 会调用注册函数,注册函数返回文件地址和需要显示的位置,实现代码如下。返回对象 Location, 包含显示文件以及位置信息。
2024-07-11 15:01:46
232
原创 Mac 上安转文字转 SQL 利器 WrenAI
开始安装,选择自定义模型安装完成进入容器查看,镜像已经启动WrenAI 安装部署简单,安装过程中需要注意模型的配置信息,包括 LLM 模型以及 Embedding 模型。如果需要修改模型,直接更新 ~/.wrenai/.env.ai 中的配置,修改完成以后,重新创建容器,WrenAI 是 RAG 应用,Embbeding 模型的选择更为重要。
2024-07-10 23:02:41
589
Databrick 数据工程时间指南,包括数据处理、数据质量、治理和安全都实践方式
2024-08-12
Apache 入门文档,Hudi PMC 详解 Hudi 从 0 到 1
2024-08-05
LlamaIndex 创始人 Jerry Liu 介绍 RAG、Agent 痛点以及解决方法
2024-07-14
深度神经网络介绍 PDF 英文版
2024-07-07
llama index 2024 AI 大会 ppt
2024-07-03
Hudi TCP-DS 测试 SQL 脚本
2024-06-20
Nginx 容器配置文件,基于 Nginx 基础进项,安装 vim
2024-06-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人