Bem-vindo ao Bookshelf-Qabot, é um projeto de Assistente de Base de Conhecimento Pessoal, uma solução de RAG projetada para otimizar seu acesso a vastas quantidades de informações com rapidez e precisão usando o poder de grandes modelos de linguagem. Essa ferramenta versátil é perfeita para pesquisadores, empresários e qualquer pessoa que precise de gerenciamento de informações eficiente. Sua escalabilidade o torna ideal para empresas que desejam aprimorar seus recursos de atendimento ao cliente, fornecendo respostas rápidas e precisas às consultas do cliente. Se você está otimizando a produtividade individual ou aprimorando uma operação comercial, este projeto é adaptado para você.

Perguntas e respostas interativas com RAG : Aproveite a arquitetura de geração de recuperação (RAG) para facilitar a resposta de perguntas dinâmicas e precisas.
Interfaces de visualização : fornece interfaces fáceis de navegar via gradio e APIs via FASTAPI para iniciar o projeto, demonstrando perguntas e respostas e exibindo exemplos.
Gerenciamento de conhecimento personalizado : oferece opções de personalização para adaptar a base de conhecimento às suas preferências. Os usuários podem fazer upload e vetorizar seus próprios ducomentos para criar uma "estante" exclusiva que lide com certas informações específicas do domínio.
Compatibilidade de vários modelos : suporta alternância contínua entre vários modelos de linguagem grande (LLMS), como GPT-3.5, GPT4 e muito mais. Essa flexibilidade permite que os usuários escolham o melhor modelo para tarefas específicas, otimizando a precisão, a velocidade de resposta e o custo.
Clone e configure o projeto:
git clone https://github.com/zhang-shizhe/Bookshelf-QABot
cd Bookshelf-QABot
conda create -n bookshelf-qabot python==3.10.14
conda activate bookshelf-qabot
pip install -r requirements.txtConfigure a chave da API
Obtenha a chave da API do OpenAI e crie um arquivo .env no diretório raiz. Copie e cole a sequência da API com o seguinte formato.
OPENAI_API_KEY= " you openai api key string "Inicie o servidor API local:
cd app
uvicorn api:app --reload
Ou você pode simplesmente correr
bash app/run_api.sh
Execute o projeto via Gradio:
python app/run_gradio.pyEste projeto aproveita uma abordagem de pilha completa com base em grandes modelos de idiomas, construídos na estrutura de Langchain. A tecnologia principal inclui chamadas de API da LLM, RAG, bancos de dados de vetores e correntes de perguntas e respostas de recuperação. A arquitetura geral do projeto é a seguinte:

Como mostrado acima, o projeto é estruturado de baixo para a camada LLM, camada de dados, camada de banco de dados, camada de aplicativo e camada de serviço.
① A camada LLM envolve principalmente o encapsulamento de chamadas de LLM para várias APIs e modelos populares de LLM, permitindo aos usuários uma entrada unificada e uma maneira de acessar diferentes modelos, suportando a comutação de modelo on-the-fly;
② A camada de dados inclui principalmente os dados de origem da base de conhecimento pessoal e a API de incorporação, onde os dados de origem após a incorporação de processamento podem ser usados pelo banco de dados do vetor;
③ A camada de banco de dados é baseada principalmente no banco de dados vetorial criado nos dados de origem da base de conhecimento pessoal, para os quais escolhi o Chroma neste projeto;
④ A camada de aplicação é o encapsulamento de primeira camada das funções principais, onde encapsulamos ainda com base na classe de perguntas e respostas de recuperação de recuperação fornecida pela Langchain, apoiando assim diferentes comutadores de modelo e facilitando a implementação da recuperação de recuperação baseada em banco de dados;
⑤ A camada superior é a camada de serviço, onde implementei o Gradio para criar demos e FASTAPI para montar APIs para apoiar o acesso ao serviço do projeto.
Obrigado pelo seu interesse neste projeto. Estou ansioso por suas contribuições e vendo como você o usará para aprimorar suas tarefas de gerenciamento e recuperação de informações ou escalá -las para aplicativos de negócios como atendimento ao cliente!