MCPcopy Index your code
hub / github.com/bigcyy/customized-chat

github.com/bigcyy/customized-chat @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
136 symbols 227 edges 26 files 26 documented · 19%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

customized chat

简介

基于ChatGpt,Java,SpringBoot,Vue,Milvus向量数据库的定制化聊天Web demo

  • 可开发成个人知识库
  • 针对某品牌的智能客服
  • 私人助理
  • more

在线体验

TODO

ui

前端项目地址

https://github.com/bigcyy/customized-chat-vue

原理

上传PDF,让ChtGpt基于PDF的内容回答问题,原理很简单:将内容分割然后embedding存入向量数据库,当用户询问时将问题embedding,拿embedding结果去向量数据库查询相似度最高的几段话丢给ChatGpt让他组织语言并结合自己丰富的知识进行润色。

本地使用

注意,你需要有OpenAI账号并且创建一个apiKey,由于国内无法使用连接OpenAi服务所以你需要配置代理

  1. 安装Milvus向量数据库

wget https://github.com/milvus-io/milvus/releases/download/v2.2.2/milvus-standalone-docker-compose.yml -O docker-compose.yml sudo docker-compose up -d

  1. 克隆后端项目

git clone git@github.com:bigcyy/customized-chat.git

  1. 用idea打开项目

  2. 初始化Milvus向量数据库表结构以及配置代理

  3. application.yml中配置向量数据库连接地址和端口(本地不需要修改),然后配置你的代理ip和端口

  4. 找到项目test文件夹下的CustomizedChatApplicationTests.java,运行prepare函数创建表结构

  5. 找到项目主函数运行后端

  6. 克隆并运行前端项目

git clone git@github.com:bigcyy/customized-chat-vue.git
cd customized-chat-vue
npm install
npm run serve
  1. 访问控制台输出的地址

  2. 界面左下角配置你的apiKey

  3. 界面左下角上传你需要定制聊天的PDF文件

  4. enjoy it

todo

  • 支持更多的文件格式
  • token计数
  • 优化文本的分割
  • 抽离embedding模型,使其能更优雅的切换为自己训练的模型或者其他公开的模型

参考资料

https://twitter.com/chuangbo/status/1631461656151887873 作者详细的描述了该方案的运行流程,本项目也是参考自该文章

相关项目

  • https://github.com/GanymedeNil/document.ai
  • https://github.com/mckaywrigley/paul-graham-gpt

Extension points exported contracts — how you extend this code

IChatService (Interface)
@author CYY @date 2023年03月11日 下午7:30 @description [2 implementers]
web/src/main/java/com/cyy/chat/service/IChatService.java

Core symbols most depended-on inside this repo

getCode
called by 9
common/src/main/java/com/cyy/common/exception/GlobalException.java
setMessage
called by 6
common/src/main/java/com/cyy/common/exception/GlobalException.java
getMessage
called by 5
web/src/main/java/com/cyy/chat/model/result/Choices.java
error
called by 3
common/src/main/java/com/cyy/common/utils/R.java
code
called by 3
common/src/main/java/com/cyy/common/utils/R.java
getData
called by 3
web/src/main/java/com/cyy/chat/model/result/EmbeddingsApiResult.java
getMessage
called by 2
common/src/main/java/com/cyy/common/exception/GlobalException.java
doEmbedding
called by 2
web/src/main/java/com/cyy/chat/model/EmbeddingModel.java

Shape

Method 110
Class 24
Enum 1
Interface 1

Languages

Java100%

Modules by API surface

web/src/main/java/com/cyy/chat/model/parama/ChatGptApiParam.java22 symbols
web/src/main/java/com/cyy/chat/model/result/ChatGptApiResult.java13 symbols
common/src/main/java/com/cyy/common/utils/R.java10 symbols
web/src/main/java/com/cyy/chat/model/result/EmbeddingsApiResult.java9 symbols
web/src/main/java/com/cyy/chat/pojo/PDFData.java8 symbols
web/src/main/java/com/cyy/chat/model/result/EmbeddingObj.java7 symbols
web/src/main/java/com/cyy/chat/model/result/Choices.java7 symbols
web/src/main/java/com/cyy/chat/model/parama/Message.java6 symbols
web/src/test/java/com/cyy/chat/CustomizedChatApplicationTests.java5 symbols
web/src/main/java/com/cyy/chat/model/parama/EmbeddingsApiParam.java5 symbols
common/src/main/java/com/cyy/common/exception/GlobalException.java5 symbols
web/src/main/java/com/cyy/chat/service/IChatService.java4 symbols

For agents

$ claude mcp add customized-chat \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact