此系列文章详细的阐述了如何从第一行代码开始搭建一个可以运行完全在本地服务器的RAG
(Retrieval Augmented Generation
)系统,包含了详细的步骤说明和代码,它是保姆级教程。
它主要包含以下功能:
- 使用本地大语言模型做语言翻译
- 使用本地大语言模型做专业领域的知识问答
从系统架构来看,本系统包含了前端、API网关、后台服务三大部分:
功能
前端使用vue3
和vuetify3
开发,脚本主要是使用组合式API
写的,主要功能有:
- 基于
OAuth2.0
和JWT
标准的用户认证 - 翻译组件
- 问答聊天组件
前端代码还包含了
本地会话管理
、请求拦截
的通用模块、切换主题
等常用功能,使用了很多veutify3
控件。
API网关使用FastAPI
实现,主要实现以下功能:
- 基于
OAuth2.0
和JWT
规范的用户认证 - 请求代理转发
后台服务主要基于本地大语言模型提供服务,包括:
- 使用
Ollama
平台,在本地部署和使用Ollama3.1
开源大语言模型 - 使用
Chroma
做本地矢量数据存储和检索 - 使用
Ollama3.1
或者nomic-embed-text
进行矢量化 - 使用本地大语言模型
Ollama3.1
实现增强生成 - 使用
langchian
将以上功能整合起来提供服务
系列文章目录
- 在Visual Studio Code中配置venv
- 在langchian中使用本地部署的llama3.1大模型
- 使用langchain+本地lamma3.1+本地chroma做RAG
- 基于langchain和本地大模型以及会话式检索增强生成技术实现知识问答
- 基于langchian和对话式增强生成技术实现知识问答
- 使用LangServe做API开放本地大模型的能力
- 用Flask做langchain服务的API
- 用FastAPI做langchain本地大模型的API
- 使用FastAPI实现微服务API网关
- 使用FastAPI实现简单的OAuth2的Password和Bearer验证
- 基于FastAPI和JWT实现OAuth2用户认证
- 基于OAuth2.0和JWT规范实现安全易用的用户认证
- 实现可以自动清除过期条目的缓存
- 用图形验证码增强用户认证安全性
如果您不了解vuetify
,您可以先看看下面的入门教程:
🔗Veutify3入门实战
查看完整代码
🪐祝好运🪐