Este projeto tem como objetivo implementar um aplicativo semântico de busca e llm-chat movido a RAG em escala. Consiste em três componentes principais:
1. Vector Store Database (chromadb_service): Manages and stores vector embeddings for efficient retrieval.
2. Backend LLM-Powered API Service (llm_service): Handles the core logic and interacts with the LLM model.
3. Frontend Application: Provides the user interface for interacting with the application.
O design modular permite que cada componente seja escalável independentemente, permitindo que o sistema lide com grandes volumes de tráfego, conforme necessário.
Para implantação do mundo real, recomenda-se adotar uma solução de banco de dados vetorial distribuída em vez de Chromadb. Além disso, serão necessários aprimoramentos adicionais para tornar o aplicativo pronto para produção.
Esta configuração do projeto é apenas o começo de criar um aplicativo baseado em bate-papo pronto para produção.
Instale dependências (use python> = 3.10). Você precisará adicionar variável de ambiente cmake_args para uma instalação bem-sucedida do LLMA-CPP-Python. Para MacBooks Apple Silicon, use o comando abaixo. Verifique a documentação oficial do LLMA-CPP-Python para outras instruções específicas da plataforma. link
CMAKE_ARGS="-DLLAMA_METAL=on"
pip install -r requirements.txt
AfterWords, na sequência seguinte, execute cada serviço.
Este é um serviço de banco de dados vetorial que cria, modifica e atualiza as entradas do conjunto de dados. Siga estas instruções aqui
Este serviço de API é alimentado pelo modelo LLAMA-2-7B para a interface de bate-papo e usa Chromadb_service para recuperação de contexto. Siga estas instruções aqui
Este é um aplicativo de front-end (Streamlit) que se baseia no LLM_SERVICE para poder chatbot e recursos de pesquisa semântica.
Para iniciar o aplicativo front -end, execute abaixo do comando.
streamlit run frontend/1_Product_Chat.py
Entre em contato comigo no LinkedIn para obter qualquer dúvida relacionada à implementação e Techonlogies. Sinta-se à vontade para abrir solicitações de tração para obter mais melhorias. Obrigado!