# pkb **Repository Path**: lzdn/pkb ## Basic Information - **Project Name**: pkb - **Description**: 使用本地模型,llamaindex,fastapi开发的个人知识库 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-03-13 - **Last Updated**: 2025-03-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 介绍 > **PKB** 个人知识库 **PBK** 是个人知识库系统,通过对用户上传的文档进行解析后向量化存储,当接收到用户的问答请求时,通过查询获得文档的高关联性段落, 然后将问题和查询到的内容组成提示词,让大模型进行推理回答。 ## 功能 核心功能如下: - 文档管理 - 智能问答 ## 流程 ![architecture](images/flow.png) ## 系统图 ![architecture](images/index.png) ## 开发过程 ``` 感谢大模型,DeepSeek完成了95%以上的代码,提示词主要包括了描述系统功能,技术栈,要做的事情描述越详细回答质量越高。 提示词如下: 1.生成一个RAG个人知识库系统的代码,功能包含上传文档,图片,智能问答,推荐使用ollama、llamaindex、fastapi等技术栈实现,代码包含python后端+前端页面 2.这两行报错,没有引入包 from llama_index.embeddings.ollama import OllamaEmbedding from llama_index.llms.ollama import Ollama 3.启动提示FileNotFoundError: [Errno 2] No such file or directory: 'E:/python_workspace/pkb/vector_store/docstore.json' 4.当上传了一个文件后,停止服务后,再次启动服务报错ValueError: One of nodes, objects, or index_struct must be provided.对应的代码报错行是return VectorStoreIndex(storage_context=storage_context) 5.提示 ERROR: No matching distribution found for schedule 6.将页面的布局做一些优化,建议分为左右块,左侧大概30%,左侧展示文件上传和文件列表模块,右侧分为上下两部分,上面是一个问答的交互对话框,下面为问答记录的列,如果有必要请对前端页面、后端接口进行调整,页面可以适当做一些美化,色彩尽量简洁明了 7.按照扩展建议修改完后,前端页面代码整理后再提供一下 8.如果文件列表有历史数据,点击删除按钮没有反应,需要怎么解决 9.如下几行代码报错,需要调整 'success': var(--success-color), 'error': var(--error-color), 'loading': var(--primary-color) 10.智能问答框加上垂直滚动条 11.将智能问答的输出改为流式输出,对应的前后端代码分别怎么修改 12.修改完之后的完整的index.html应该是怎样的 13.如何提升本地模型响应速度 ``` ## 本地启动 - 创建conda环境 ``` conda create -n pkb python=3.10 ``` - 导入依赖 ``` pip install -r requirements.txt ``` - 导出依赖包 ``` pip freeze > requirements.txt ```