Este projeto veio de uma idéia simples: e se você pudesse fornecer uma base de código inteira a um LLM em vez de apenas pequenos pedaços? A maioria dos assistentes de codificação, como co-pilotos, trabalha em um escopo limitado, mas eu queria algo que pudesse lidar com o contexto completo de um projeto.
Ao integrar a base de código completa à geração de recuperação de recuperação (RAG), esse POC visa melhorar a qualidade e a relevância das sugestões de código. O objetivo é ver como ter o código completo disponível para consulta em tempo real pode aumentar a produtividade.
O CoderAg é uma ferramenta de recuperação de código e recuperação de IA que aproveita os modelos do OpenAI (como gpt-4 ou gpt-3.5-turbo ) para consulta, indexação e melhoria da base de código em tempo real. Este projeto integra um sistema de geração de recuperação de recuperação (RAG) para ajudar os desenvolvedores a pesquisar perfeitamente através do código, a receber sugestões e implementar melhorias.
.env para chaves da API, seleção de modelos e diretórios.git clone https://github.com/yourusername/CodeRAG.git
cd CodeRAGCrie um ambiente virtual (recomendado):
python3 -m venv venv
source venv/bin/activate # On Windows use `venvScriptsactivate`Instale os pacotes necessários:
pip install -r requirements.txt Crie um arquivo .env na raiz do projeto e adicione as seguintes variáveis:
OPENAI_API_KEY=your_openai_api_key
OPENAI_EMBEDDING_MODEL=text-embedding-ada-002
OPENAI_CHAT_MODEL=gpt-4o
WATCHED_DIR=path_to_your_code_directory
FAISS_INDEX_FILE=path_to_faiss_index
EMBEDDING_DIM=1536 # Modify if you're using a different embedding model Comece o back -end :
Para iniciar o back -end (indexação, incorporação e monitoramento):
python main.pyComece o front -end :
Para iniciar a interface do usuário do streamlit:
streamlit run app.pymain.py : o script principal para executar o aplicativo.prompt_flow.py : lida com a consulta da API do OpenAI e gerencia a pesquisa e o histórico de conversação.coderag/config.py : armazena variáveis de configuração e ambiente.coderag/search.py : gerencia o banco de dados vetorial (FAISS) Procura trechos de código relevantes..env : mantém configurações específicas do ambiente (teclas de API OpenAI, configuração do modelo, etc.).requirements.txt : lista as dependências do Python necessárias para executar o projeto.Sinta -se à vontade para gastar este repositório, abrir problemas e enviar solicitações de puxar.
git checkout -b feature/your-feature ).git commit -am 'Add new feature' ).git push origin feature/your-feature ).Este projeto está licenciado sob a licença Apache. Consulte o arquivo de licença para obter detalhes.