langchain ChatGPT AI私有知识库

news/2024/10/20 3:34:46/

企业知识库

原理就是把文档变为向量数据库,然后搜索向量数据库,把相似的数据和问题作为prompt,
输入到大模型,再利用GPT强大的自然语言处理、推理和分析等方面的能力将答案返回给用户

什么是langchain?

langchain是一个强大的框架,旨在帮助开发人员使用语言模型构建端到端的应用程序。它提供了一套工具、组件和接口,可简化创建由大型语言模型 (LLM) 和聊天模型提供支持的应用程序的过程。LangChain 可以轻松管理与语言模型的交互,将多个组件链接在一起,并集成额外的资源,例如 API 和数据库。

AI私有知识库

一种利用langchain思想实现的基于本地知识库的问答应用

image.png

详细流程实现:

文档的处理:
  1. 本地文档 进行加载获取到text文字内容
  2. 将获取的text进行切割分段(一般是采用文字500字切割,且上下文档有关联100字)
  3. 分段segment进行向量化存储到向量存储中
query查询的处理
  1. 对提问的问题query进行向量化embedding
  2. 查询向量存储匹配的文档(一般有相似度的查询与设置,比较好用)
  3. 查询的文档与问题、历史记录等组成prompt
  4. prompt(一般会设置中文化且设置回答等限制)请求LLM大模型
  5. 最终返回结果给用户

最后最终方案

本人和公司都是Java系的开发,但langchain是python的框架,最后采用了如下的方案:…
麻蛋,还得给它改python代码 (头皮发麻)

Azure AI 是微软的一个python开源解决方案,但我们是Java体系,便只使用azure AI LLM大模型的功能,和向量embedding的存储,提问查询功能,其他的功能都采用Java来实现,如对象存储、文档加载、文档切割、格式转化等等

image.png


http://www.ppmy.cn/news/1059167.html

相关文章

HarmonyOS开发:超详细了解项目的工程结构

前言 系列文章目录: HarmonyOS开发第一步,熟知开发工具DevEco Studio 当我们熟练的掌握了DevEco Studio之后,就可以创建项目进行练习了,和市场上大多数IDE一样,DevEco Studio也给我们提供了很多的实例模板&#xff0c…

【Linux】线程篇Ⅱ:

线程Ⅱ 🔗接上篇【线程篇Ⅰ】五、线程库 和 线程 id六、互斥(加锁)1. 一些接口1.1 pthread_mutex_init 函数:锁的初始化1.2 pthread_mutex_destroy 函数:锁的销毁1.3 pthread_mutex_lock 函数:上锁1.4 pthr…

【Java面试】指令重排引发问题及解决方案

一 指令重排引发的问题 什么是指令重排? 指令重排是指在程序执行过程中,为了优化性能,编译器或处理器可能会重新安排代码指令的执行顺序,但要求不改变程序的最终结果。 在多线程环境中,指令重排可能会引发一些问题&a…

iconfont 图标在vue里的使用

刚好项目需要使用一个iconfont的图标,所以记录一下这个过程 1、iconfont-阿里巴巴矢量图标库 这个注册一个账号,以便后续使用下载代码时需要 2、寻找自己需要的图标 我主要是找两个图标 ,一个加号,一个减号,分别加入到…

C 语言编程规范 -- 华为

1. 代码总体原则 1.1 清晰第一,清晰性是易于维护,易于重构的程序必须具备的特征 代码首先是给人读的,好的代码应当可以像文章一样发生朗诵出来,“程序必须为阅读它的人而编写,只是顺便用于机器执行” – Harold Abel…

微信小程序|步骤条

步骤条是现代用户界面设计中常见的元素之一,它能够引导用户按照预定顺序完成一系列任务或步骤。在小程序中,实现步骤条可以为用户提供更好的导航和引导,使用户体验更加流畅和直观。本文将介绍如何在小程序中实现步骤条,并逐步展示实现的过程和关键技巧 目录 步骤条的作用及…

【PHP】PHP文件操作详解

PHP是一种广泛使用的服务器端脚本语言,用于开发Web应用程序。在PHP中,文件操作是一项重要的功能,包括文件的读取、写入、删除和其他操作。本文将详细介绍PHP文件操作的各个方面,并通过示例代码进行说明。 一、文件读取 要读取一…

idea启动正常,打成jar包时,启动报错

背景 自己写了个小程序,在idea中启动正常,达成jar包发布时,启动报错。 Caused by: java.sql.SQLException: unknown jdbc driver : at com.alibaba.druid.util.JdbcUtils.getDriverClassName(JdbcUtils.java:517) at com.alibaba.druid.pool…