OneRAG - código-fonte de RAG criado por um PM de chatbot, com troca de vetor DB/LLM etc. possível com uma única linha de configuração
(github.com/notadev-iamaura)Como não desenvolvedor, depois de tocar vários produtos relacionados a chatbot, em algum momento passei a querer criar um produto exatamente do jeito que eu imaginava.
Então comecei a desenvolver chatbots na Kmong.
Hoje em dia há muitos projetos na Kmong tocados por não desenvolvedores, e eu também consegui gerar cerca de 14 milhões de won em receita ao longo de 5 meses, desde setembro do ano passado, usando apenas chatbots RAG.
As exigências dos clientes costumam ser parecidas, e era incômodo ter que modificar o código para lidar com pipelines de RAG um pouco diferentes e com diferentes usos de vector DB, então criei o OneRAG.
Ideia principal: qualquer componente pode ser trocado alterando apenas uma linha no arquivo de configuração
Componentes suportados:
- Vector DB: Weaviate, Chroma, Pinecone, Qdrant, pgvector, MongoDB
- LLM: Gemini, OpenAI, Claude, OpenRouter
- Reranker: Jina, Cohere, Google, OpenAI, Local
- Cache: Memory, Redis, Semantic
- Extra: GraphRAG, PII Mask, Agent
Quickstart de 5 minutos:
git clone https://github.com/notadev-iamaura/OneRAG
cd OneRAG && make quickstart
Baseado em FastAPI, inclui Docker Compose e oferece suporte básico a NLP em coreano.
(Trabalhei no setor de serviços de IA na Coreia)
Licença MIT. Ficarei grato por feedback sobre a arquitetura ou sugestões de componentes que valeria a pena adicionar.
8 comentários
Ultimamente, eu também vinha sentindo vagamente que precisava de um serviço assim. Queria saber se vocês pensam em adicionar modelos chineses como o GLM da Zhipu ou o Kimi.
Obrigado pela opinião!
Atualmente, já é possível fazer chamadas de modelo com base no OpenRouter, então, se você configurar a chamada via OpenRouter, será possível usar o modelo que mencionou apenas trocando o nome do modelo.
Se for uma estrutura para executar esse modelo localmente, pretendo atualizar isso no futuro.
No entanto, isso provavelmente será depois que ele parecer estar em um nível adequado para uso em RAG em coreano.
Até lá, pretendo adicionar um pipeline simplificado para que quem está tendo o primeiro contato com RAG possa experimentar de forma simples.
Por exemplo, estou considerando recursos para fazer RAG com menos configuração e de forma mais simples usando a Grok Collections API :)
Obrigado pela resposta. Você está se referindo a este serviço, o OpenRouter: https://openrouter.ai/? Sobre a parte em que você disse que é um modelo em nível adequado para usar em RAG em coreano, isso não é algo que eu conheça muito bem, mas no meu caso o GLM 4.7 tem dado respostas em coreano de forma consistentemente melhor para os prompts que eu quero do que o sonnet 4.5, então meu nível de confiança nele aumentou um pouco. Por isso, acho que vale a pena dar uma olhada com interesse.
Sim, isso mesmo! Com base na API do OpenRouter do link em questão, a troca de modelo é fácil.
(Porém, há um custo adicional de cerca de 5% sobre o valor da recarga, então dá para usar com praticidade em projetos de brinquedo)
Também vou verificar na prática o desempenho do GLM4.7 e planejar para que ele possa ser aplicado :)
Dá para deixar o web app bonito e parece ótimo para usar como backend de chatbot.
Sim, acho que para um projeto pessoal não seria uma má opção usar com um frontend bem caprichado :)
Obrigado por compartilhar!
Sim! Espero que isso ajude nem que seja um pouco a testar produtos de RAG de forma simples!