Introdução geral
O DeepSeek-RAG-Chatbot é um projeto de chatbot de código aberto baseado no modelo DeepSeek R1, hospedado no GitHub e criado pelo desenvolvedor SaiAkhil066. Ele combina a tecnologia Retrieval Augmented Generation (RAG) para dar suporte aos usuários no upload de documentos (como arquivos PDF, DOCX ou TXT), por meio do tempo de execução local para obter recuperação eficiente de documentos e perguntas e respostas inteligentes. O projeto utiliza recursos avançados, como pesquisa híbrida (BM25 + FAISS), reordenação neural e gráfico de conhecimento (GraphRAG) para garantir que informações contextualmente precisas e relevantes sejam extraídas dos documentos. Ele é adequado para cenários que exigem proteção da privacidade ou uso off-line, como gerenciamento de conhecimento pessoal e processamento de documentos corporativos. O projeto oferece suporte à interface Docker e Streamlit, que é fácil de instalar e os usuários podem começar a usar facilmente.
Lista de funções
- Upload e processamento de documentosSuporte para upload de arquivos em PDF, DOCX, TXT, etc., divisão automática de documentos e geração de embeddings vetoriais.
- Mecanismo de pesquisa híbridoCombine a tecnologia BM25 e FAISS para recuperar rapidamente o conteúdo relevante dos documentos.
- Suporte a gráficos de conhecimento (GraphRAG)Crie um gráfico de conhecimento de documentos para entender as relações entre entidades e melhorar a precisão contextual das respostas.
- reordenação neuralReordenação dos resultados da pesquisa usando um modelo de codificador cruzado para garantir que as informações mais relevantes sejam exibidas primeiro.
- Extensão de consulta (HyDE)Geração de respostas hipotéticas para ampliar as consultas dos usuários e melhorar a recuperação.
- Execuções de modelos locaisSuporte à implantação local de modelos como o DeepSeek R1 por meio da Ollama para garantir a privacidade dos dados.
- Fluxo de respostas em tempo realSaída de streaming: a saída de streaming é fornecida para que os usuários possam ver os resultados gerados instantaneamente.
- Suporte ao DockerSimplifique a instalação e a operação com a implantação em contêineres do Docker.
- Interface StreamlitInterface gráfica intuitiva para facilitar o upload de arquivos e o bate-papo interativo.
Usando a Ajuda
Processo de instalação
O DeepSeek-RAG-Chatbot oferece suporte à operação local e requer algumas configurações de ambiente. Veja a seguir as etapas detalhadas de instalação:
pré-condições
- sistema operacional: Windows, macOS ou Linux.
- Requisitos de hardwarePelo menos 8 GB de RAM (recomenda-se 16 GB) e uma placa de vídeo habilitada para CUDA se estiver usando aceleração de GPU.
- dependência de softwarePython 3.8+, Git, Docker (opcional).
Etapa 1: Clonar o projeto
- Abra um terminal e execute o seguinte comando para clonar seu repositório do GitHub:
git clone https://github.com/SaiAkhil066/DeepSeek-RAG-Chatbot.git
- Vá para o catálogo de projetos:
cd DeepSeek-RAG-Chatbot
Etapa 2: Configurando o ambiente Python
- Crie um ambiente virtual:
python -m venv venv
- Ativar o ambiente virtual:
- Windows:
venv\Scripts\activate
- macOS/Linux:
fonte venv/bin/activate
- Atualize o pip e instale as dependências:
pip install --upgrade pip
pip install -r requirements.txt
As dependências incluem iluminado
elangchain
efaiss-gpu
(se houver uma GPU), etc.
Etapa 3: Instalar e configurar o Ollama
- Faça o download e instale o Ollama (acesse ollama.com para obter o pacote de instalação).
- Puxe o modelo DeepSeek R1 (parâmetros padrão 7B, outras versões como 1.5B ou 32B estão disponíveis conforme necessário):
ollama pull deepseek-r1:7b
ollama pull nomic-embed-text
- Certifique-se de que o serviço Ollama esteja em execução e que o endereço de escuta padrão seja
localhost:11434
.
Etapa 4: (Opcional) Implantação do Docker
Se não quiser configurar seu ambiente manualmente, você pode usar o Docker:
- Instale o Docker (consulte docker.com).
- Execute-o no diretório raiz do projeto:
docker-compose up
- O Docker extrai automaticamente os serviços do Ollama e do chatbot, executa-os e, em seguida, acessa o
http://localhost:8501
.
Etapa 5: Inicie o aplicativo
- Execute o Streamlit em um ambiente virtual:
streamlit run app.py
- O navegador abrirá automaticamente o
http://localhost:8501
, entre na tela de bate-papo.
Funções de operação
Função 1: Upload de documentos
- Como chegar à interfaceInterface do Streamlit: Uma vez iniciada, a interface do Streamlit tem uma barra lateral "Upload Documents" (Carregar documentos) no lado esquerdo da tela.
- Selecionar arquivoClique no botão "Browse files" (Procurar arquivos) para selecionar um arquivo local PDF, DOCX ou TXT.
- Processamento de documentosTempo de processamento: Depois de carregado, o sistema divide automaticamente o documento em partes menores, gera embeddings vetoriais e os armazena no FAISS. O tempo de processamento varia de acordo com o tamanho do arquivo e, em geral, é de alguns segundos a alguns minutos.
- chamar a atenção para algoMensagem de confirmação: Uma mensagem de confirmação "File processing complete" (Processamento de arquivo concluído) é exibida na barra lateral.
Função 2: Questionamento e pesquisa
- Problemas de entradaDigite uma pergunta na caixa de bate-papo em chinês ou inglês, por exemplo, "Qual é o objetivo do GraphRAG conforme mencionado na documentação? na documentação.
- processo de recuperação::
- O sistema usa o BM25 e o FAISS para recuperar fragmentos de documentos relevantes.
- O GraphRAG analisa os relacionamentos de entidades entre fragmentos.
- A reordenação neural otimiza a ordem dos resultados.
- O HyDE amplia a consulta para abranger um conteúdo mais relevante.
- Gerar respostasDeepSeek R1: o DeepSeek R1 gera respostas com base nos resultados da pesquisa, e as respostas são geradas em um formato de fluxo contínuo e exibidas passo a passo na interface.
- exemplo típicoSe você perguntar "O que é pesquisa híbrida?" poderá retornar "Hybrid search combines BM25 and FAISS, BM25 is responsible for keyword matching and FAISS quickly locates content through vector similarity" (A pesquisa híbrida combina o BM25 e o FAISS, o BM25 é responsável pela correspondência de palavras-chave e o FAISS localiza rapidamente o conteúdo por meio da similaridade vetorial).
Função 3: Aplicação do gráfico de conhecimento
- Ativar o GraphRAGAtivado por padrão, nenhuma ação adicional é necessária.
- Fazer perguntas complexasPor exemplo, "Qual é o relacionamento cooperativo entre a Empresa A e a Empresa B?". .
- Mostra de resultadosO sistema não apenas retorna texto, mas também fornece respostas relacionais com base no gráfico de conhecimento, por exemplo, "A Empresa A e a Empresa B assinaram um acordo de cooperação técnica em 2023".
Função 4: Ajuste de modelos e parâmetros
- Modelo de substituição: em
.env
Modificar no arquivoMODELO
por exemplo, paradeepseek-r1:1.5b
. - otimizar o desempenhoSe for compatível com o hardware, instale o
faiss-gpu
Com a aceleração da GPU ativada, as velocidades de recuperação podem ser aumentadas em até três vezes.
Dicas e truques
- Suporte a vários documentosArquivos: Vários arquivos podem ser carregados ao mesmo tempo e o sistema integrará o conteúdo para responder às perguntas.
- clareza dos problemasSejam o mais específicos possível ao fazer perguntas e evitem declarações vagas para melhorar a precisão de suas respostas.
- Verifique os registrosSe encontrar um erro, verifique os registros do terminal para solucionar o problema, como, por exemplo, se o modelo não foi baixado ou se a porta está ocupada.
advertência
- PrivacidadeNão é necessária conexão com a Internet para a operação local e os dados não são carregados na nuvem.
- ocupação de recursosModelos grandes e cálculos de vetores de alta dimensão exigem muita memória, portanto, é recomendável fechar programas irrelevantes.
- Atualização do modeloOperação regular
ollama pull
Obtenha a versão mais recente do modelo DeepSeek.
Depois que as etapas acima forem concluídas, os usuários poderão interagir com o DeepSeek-RAG-Chatbot por meio de seus navegadores e desfrutar de uma experiência eficiente de questionamento de documentos.