OneRAG - チャットボットPMが作った、設定1行でベクターDB/LLMなどを置き換え可能なRAGソース
(github.com/notadev-iamaura)非開発者としてチャットボット関連のプロダクトを何度も進める中で、ある時から自分が考えた通りにプロダクトを作ってみたいと思うようになりました。
そこで、Kmongでチャットボット開発を始めました。
最近は非開発者によるKmongプロジェクトも多いですが、私もRAGチャットボット一本で昨年9月から5か月間で約1,400万ウォンの収益を作ってみました。
依頼者の要件はだいたい似通っており、少しずつ異なるRAGパイプラインやベクターDB活用などに対応するためにコードを修正しなければならないのが煩雑だったので、OneRAGを作りました。
核心となるアイデア: 設定ファイルの1行だけを変えれば、どんなコンポーネントでも置き換え可能
対応コンポーネント:
- 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
5分クイックスタート:
git clone https://github.com/notadev-iamaura/OneRAG
cd OneRAG && make quickstart
FastAPIベースで、Docker Composeを含み、日本語・韓国語NLPを基本サポートします。
(韓国のAIサービス分野で働いてきました)
MITライセンスです。アーキテクチャのフィードバックや、どんなコンポーネントを追加するとよいかご意見をいただけるとありがたいです。
8件のコメント
最近、私もうっすらとこのようなサービスが必要だと感じていました。もしよければ、zhipuのGLMやKimiのような中国モデルを追加するお考えがあるのか気になります。
ご意見ありがとうございます!
現在もOpenRouterをベースにモデル呼び出しができるため、OpenRouterベースの呼び出し設定にしていただければ、モデル名だけを変えてご指摘のモデルを呼び出すことが可能です。
ご指摘のモデルをローカルで動作させる構成については、今後アップデートしたいと考えています。
ただし、時期としては韓国語RAGに使えるレベルのモデルだと判断できた後になると思います。
それまでは、RAGに初めて触れる方が簡単に試せるような、より簡素化されたパイプラインを追加する予定です。
例えば、Grok Collections APIを活用して、より少ない設定でより簡単にRAGを行える機能などを検討しています :)
ご回答ありがとうございます。OpenRouter とは https://openrouter.ai/ のこのサービスのことをおっしゃっていますか? 韓国語RAGで使えるレベルのモデルだというお話については、私にはあまり詳しくない内容ではあるのですが、私は GLM 4.7 が Sonnet 4.5 よりも、私が求めるプロンプトに対して一貫してより良い韓国語の回答をしてくれるため、少し信頼が高まっている状況です。なので、関心を持って見ていただけると良いかもしれません。
はい、その通りです!当該リンクの OpenRouter API をベースにしているため、モデルの切り替えは容易です。
(ただし、チャージ費用に5%ほどの追加コストが発生するため、トイプロジェクトレベルであれば便利に利用できます)
GLM4.7 の性能も実際に使いながら確認し、適用できるよう計画してみます :)
Webアプリをきれいに作り込み、チャットボット向けのバックエンドとして使うのにも良さそうですね
はい、個人プロジェクトでフロントエンドをきれいに整えて使うには悪くないと思います :)
公開ありがとうございます!
はい!RAGプロダクトを手軽にテストするうえで、少しでもお役に立てればうれしいです!