什么是privateGpt?
privategpt开源项目地址
https://github.com/imartinez/privateGPT/tree/main
官方文档
https://docs.privategpt.dev/overview/welcome/welcome
PrivateGPT是一个可投入生产的人工智能项目,利用大型语言模型(LLMs)的强大能力,即使在没有互联网连接的情况下,也能够提出关于您文档的问题。项目100%私密,任何时候都不会有数据离开您的执行环境。
该项目提供了一个API,提供构建私密、上下文感知的人工智能应用程序所需的所有基本功能。它遵循并扩展了OpenAI API标准,并支持正常和流式响应。
API分为两个逻辑块:
高级API,抽象了RAG(检索增强生成)管道实现的所有复杂性:
文档摄取:内部管理文档解析、拆分、元数据提取、嵌入生成和存储。
使用来自摄取文档的上下文进行聊天和完成:抽象了上下文的检索、提示工程和响应生成。
低级API,允许高级用户实现自己的复杂管道:
基于文本的嵌入生成。
给定查询,检索从摄取的文档中返回最相关的文本块。
除此之外,提供了一个可用于测试API的工作Gradio UI客户端,以及一组有用的工具,如批量模型下载脚本、摄取脚本、文档文件夹监视等。
开源平台 语言模型网站
https://huggingface.co/welcome
Hugging Face是一个提供自然语言处理(NLP)模型和工具的开源平台。该平台致力于构建和分享先进的NLP模型,并提供易于使用的API和工具,使研究人员和开发者能够快速使用和部署这些模型。
Hugging Face的主要特点包括:
模型存储库: Hugging Face提供了一个庞大的模型存储库,其中包含各种NLP任务的预训练模型,如文本生成、文本分类、命名实体识别等。这些模型基于最新的研究成果,并由全球社区进行不断更新和改进。
Transformers库: Hugging Face发布了一个名为Transformers的开源库,该库提供了访问各种NLP模型的简单API。该库支持多种流行的深度学习框架,如TensorFlow和PyTorch,使用户能够轻松地在其项目中使用这些模型。
任务特定工具: Hugging Face的平台包括一些任务特定的工具,例如文本生成、文本分类和对话生成的API。这些工具简化了NLP模型的使用,并允许用户针对特定任务进行微调和部署。
总体而言,Hugging Face通过提供易于访问、使用和共享的NLP模型,推动了自然语言处理领域的进步,并促进了开发者和研究人员之间的合作。
开始搭建
虚拟独立python环境
使用anaconda安装
https://www.anaconda.com/download/
进入Anaconda cmd命令行
设定独立虚拟环境python版本
安装python 3.11.0版本
conda create -n gpt python==3.11.0
设定环境
conda activate gpt
搭建C++编译环境(必须)
下载 VisualStudioSetup.exe 安装包
选择C++
nvidia显卡驱动(gpu) 可选,默认是用cpu
安装显卡驱动
https://developer.nvidia.com/cuda-downloads
点击历史版本
安装11.8.0版本
使用nvidia 配置 (使用 Anaconda powershell)
$env:CMAKE_ARGS='-DLLAMA_CUBLAS=on'
poetry run pip install --force-reinstall --no-cache-dir llama-cpp-python
下载privateGpt 源码
git clone https://github.com/imartinez/privateGPT.git
进入privateGpt 目录
安装poetry
使用pip安装poetry
pip install poetry
## docx解析支持
pip install docx2txt
poetry安装 ui&local
poetry install --with ui,local
## 使用默认的配置,下载大语言模型
poetry run python scripts/setup
启动服务
set PGPT_PROFILES=local
python -m private_gpt
访问: localhost:8001
支持的文件格式
privateGPT默认支持包含明文的所有文件格式(例如,.txt文件,.html等)。然而,这些基于文本的文件格式仅被视为文本文件,不会以任何其他方式进行预处理。
注意文件的编码必须为utf-8
它还支持以下文件格式:
.hwp
.pdf
.docx
.pptx
.ppt
.pptm
.jpg
.png
.jpeg
.mp3
.mp4
.csv
.epub
.md
.mbox
.ipynb
.json
常用的配置:
https://docs.privategpt.dev/manual/advanced-setup/llm-backends
Using OpenAI
If you cannot run a local model (because you don't have a GPU, for example) or for testing purposes, you may decide to run PrivateGPT using OpenAI as the LLM and Embeddings model.
In order to do so, create a profile settings-openai.yaml with the following contents:
llm:
mode: openai
openai:
api_base: <openai-api-base-url> # Defaults to https://api.openai.com/v1
api_key: <your_openai_api_key> # You could skip this configuration and use the OPENAI_API_KEY env var instead
model: <openai_model_to_use> # Optional model to use. Default is "gpt-3.5-turbo"
# Note: Open AI Models are listed here: https://platform.openai.com/docs/models
And run PrivateGPT loading that profile you just created:
PGPT_PROFILES=openai make run
cmd use:
make run PGPT_PROFILES=openai