anythingLLM和deepseek4j和milvus组合建立RAG知识库
1、deepseek本地化部署使用 ollama
下载模型
Tags · bge-m3
bge-m3:latest
deepseek-r1:32b
deepseek-r1:8b
2、安装好向量数据库 milvus
docker安装milvus单机版-CSDN博客
3、安装 anythingLLM
AnythingLLM | The all-in-one AI application for everyone
官网下载很慢,网盘地址
通过网盘分享的文件:AnythingLLMDesktop.exe
链接: https://pan.baidu.com/s/1YfNKhYNBO1t8ULuK00E5yQ?pwd=gi2n 提取码: gi2n
4、anything 配置
第一步新建工作区
第二步 工作区配置 聊天配置
第三步 向量数据库配置
第四步 Embedding模型配置
第五步 喂数据
进入 milvus的管理界面可以看到 anything创建的向量库
第六步 在代码中使用
/**
* RAG知识库接口
* @param prompt
* @return
*/
@GetMapping(value = "/rag/chat", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
public Flux<ChatCompletionResponse> ragchat(String prompt) {
List<Float> floatList = embeddingClient.embed(prompt);
SearchReq searchReq = SearchReq.builder()
.collectionName("anythingllm_test01")
.data(Collections.singletonList(new FloatVec(floatList)))
// metadata text deepseek4j_test
.outputFields(Collections.singletonList("metadata"))
.topK(3)
.build();
SearchResp searchResp = milvusClientV2.search(searchReq);
List<String> resultList = new ArrayList<>();
List<List<SearchResp.SearchResult>> searchResults = searchResp.getSearchResults();
for (List<SearchResp.SearchResult> results : searchResults) {
System.out.println("TopK results:");
for (SearchResp.SearchResult result : results) {
resultList.add(result.getEntity().get("metadata").toString());
}
}
ChatCompletionRequest request = ChatCompletionRequest.builder()
// 根据渠道模型名称动态修改这个参数
.model("deepseek-r1:32b")
.addUserMessage(String.format("你要根据用户输入的问题:%s \n \n 参考如下内容: %s \n\n 整理处理最终结果", prompt, resultList)).build();
return deepSeekClient.chatFluxCompletion(request);
}
deepseek 调试 调试效果如下
deepseek私有化RAG思路
ollama 运行deepseek模型和向量化模型bge-m3,anything 实现喂数据到向量化数据库milvus,deepseek4j结合便可以实现RAG私有化