Closed6

オープンソースのRAGアプリ「RAGapp」を試す

kun432kun432

https://github.com/ragapp/ragapp

あらゆる企業でAgentic RAGを使用する最も簡単な方法。

OpenAIのカスタムGPTと同様に設定が簡単、かつ、Dockerを使用して独自のクラウドインフラにデプロイ可能。
LlamaIndexを使って構築されている。

kun432kun432

Get Startedに従って進める。ローカルのUbuntuサーバで。

https://github.com/ragapp/ragapp?tab=readme-ov-file#get-started

Dockerでインストールできる。めちゃめちゃシンプル。

$ docker run -p 8000:8000 ragapp/ragapp

立ち上がった。

INFO:     Started server process [1]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)

ブラウザでアクセス。インストール成功しているメッセージが表示される。

最初にAPIキーをセットする。対応しているのはOpenAI、Gemini、Ollama。今回はOpenAIのAPIキーをセットした。

こういう画面になる。

ざっと見た感じ、

  • AI Config
    • モデルの設定
  • RAG Config
    • システムプロンプトの設定
  • Agent Config
    • エージェントで使うツールの設定
      • DuckDuckGo
      • Wikipedia
  • Knowledge
    • RAGのコンテキスト

という感じ。とりあえず、まずはRAGのコンテキストとなるデータを用意する。以下のデータ(PDFファイル)を使ってみる。

https://www.city.kobe.lg.jp/a64051/shise/toke/sightseeing.html

観光動向調査(令和4年度)
https://www.city.kobe.lg.jp/documents/15123/r4_doukou.pdf

アップロード。

システムプロンプトを日本語に変更する。

あなたは、ユーザーの質問に日本語で回答するとても親切なアシスタントです。

では質問してみる。

Sourcesをクリックすると引用元ドキュメントを表示することもできる。

Show Eventsはログなのかな?おそらく中間ステップ的なものとかも表示されそうな気はする。

会話履歴も管理されている。

kun432kun432

WebアプリやAPI経由での利用もできる。

まず上の"start the app"をクリック。

別タブでWebチャットが開くので、同じように会話してみる。

なるほど、LlamaIndexのcreate-llamaが使用されている。

https://github.com/run-llama/create-llama

次にAPI。上の"use the API"をクリック。

FastAPIのAPIドキュメントが表示される。

これを参考にやってみる。

$ curl -X POST http://rtx4090.local:8000/api/chat/request \
    -H 'Content-type: application/json' \
    -d '{"messages":[{"content":"観光客が利用している交通機関の内訳について教えて。","role":"user"}]}' | jq -r .
{
  "result": {
    "role": "assistant",
    "content": "観光客が利用している交通機関の内訳は以下の通りです:\n\n- 神戸までの主な交通機関:\n  - 新幹線:全市平均で11.0%が利用。\n  - JR:全市平均で18.9%が利用。\n  - 阪急:全市平均で9.8%が利用。\n  - 阪神:全市平均で6.3%が利用。\n  - 山陽:全市平均で0.9%が利用。\n  - 車、バイク:全市平均で40.9%が利用。\n  - バス:全市平均で5.6%が利用。\n\n- 神戸市内での主な交通手段:\n  - 路線バス:全市平均で15.6%が利用。\n  - 市営地下鉄:全市平均で13.6%が利用。\n  - JR:全市平均で30.5%が利用。\n  - 阪急:全市平均で15.3%が利用。\n  - 阪神:全市平均で10.5%が利用。\n  - 車、バイク:全市平均で37.4%が利用。\n\n以上が観光客が利用している交通機関の内訳に関する詳細情報です。"
  },
  "nodes": [
    {
      "id": "8ee4c64a-1888-4b9d-a9a7-b15111bc4fac",
      "metadata": {
        "page_label": "6",
        "file_name": "r4_doukou.pdf",
        "file_path": "/app/data/r4_doukou.pdf",
        "file_type": "application/pdf",
        "file_size": 1180120,
        "creation_date": "2024-05-27",
        "last_modified_date": "2024-05-27"
      },
      "score": 0.3179557706554869,
      "text": "5 (4)交通機関利用状況  \n①神戸までの主な利用交通機関 \n●神戸までの主 な交通手段は、全市では「車、バイク」が40.9%と約4 割となっており 、前回\n(46.6%)から5.7ポイントの減少 。一方、鉄道利用者(「新幹線」「JR」「阪急」「阪神」「山\n陽」の計)は、 46.9%で約5割となって いる。 \n●地区別にみる と、鉄道利用者は『北野』(62.2%)で最も高く 、次いで『神戸港』(60.0%)、\n『市街地 』(57.3%)で高い比率 。『西北神』では「車、バイク」(85.3%)が8割以上で 飛び\nぬけて高い 。また、「バス」利用者は『有馬』(18.6%)において、他の地区と比較し高い 比\n率となっている 。 \n【図表4-1  神戸までの主な交通機関】  \n(%) 全市               \n北野 市街地 神戸港 六甲・摩耶 有馬 須磨・舞子 西北神 \n新幹線 11.0 22.4 11.7 14.5 10.6 13.2 5.0 0.7 \nJR 18.9 17.4 22.2 29.3 15.4 11.2 25.1 3.0 \n阪急 9.8 15.6 11.9 8.6 16.3 6.0 4.4 0.9 \n阪神 6.3 6.2 10.9 7.0 3.8 1.8 3.3 0.5 \n山陽 0.9 0.6 0.6 0.6 0.2 0.6 3.9 0.5 \n車、バイク 40.9 20.2 30.2 32.7 44.1 43.2 52.3 85.3 \nレンタカー 1.1 1.2 0.2 - 3.5 2.2 0.7 1.4 \nタクシー 0.2 0.3 0.3 0.2 - 0.2 - - \nバス 5.6 5.9 4.2 2.2 3.5 18.6 1.7 6.4 \n船・フェリー 0.5 0.3 0.6 1.0 0.7 0.2 - 0.2 \n飛行機(神戸空港) 2.5 4.0 4.4 2.2 0.5 0.6 1.5 0.5 \n飛行機(伊丹空港) 1.0 2.5 1.3 0.8 0.2 0.4 0.9 0.5 \n飛行機(関西空港) 0.6 1.6 0.6 0.2 - 1.4 1.1 - \nその他 0.8 1.6 0.8 0.8 1.3 0.4 0.2 0.2"
    },
    {
      "id": "0e895235-377c-49e0-bdc4-2d35b9fbbb0f",
      "metadata": {
        "page_label": "7",
        "file_name": "r4_doukou.pdf",
        "file_path": "/app/data/r4_doukou.pdf",
        "file_type": "application/pdf",
        "file_size": 1180120,
        "creation_date": "2024-05-27",
        "last_modified_date": "2024-05-27"
      },
      "score": 0.3149177072318717,
      "text": "6 ②神戸市内での主な交通手段 \n●神戸市内での 主な交通手段としては 、全市では昨年同様「車、バイク」(37.4%)が最も高く 、\n次いで「JR」(30.5%)となっている 。鉄道利用者(「市営地下鉄」「JR」「阪急」「阪神」\n「山陽」の計)は 73.2%で、昨年( 52.5%)より20.7ポイント高 くなっている。 \n●地区別にみる と、『北野』で「市内観光用のル ープバス」(14.9%)が他の地区と比較して 高\nくなってい る。『西北神』では「車、バ イク」が8割を超え 、『六甲・ 摩耶』『有馬』『須磨・\n舞子』では4割を超え ている。『市街地』『神戸港』では「JR」が3割を超え、他の地区と\n比較して高くな っている。 \n【図表4-2  神戸市内での主な交通手段】  \n(%) \n※複数回答 全市        \n北野 市街地 神戸港 六甲・摩耶 有馬 須磨・舞子 西北神 \n路線バス 15.6 14.4 13.0 13.3 28.2 23.5 14.1 7.6 \n貸切バス 、シャトルバ ス 3.2 7.5 2.3 1.0 3.2 7.4 2.5 3.7 \n市内観光用のループバス 3.1 14.9 3.5 3.8 1.2 1.5 1.2 0.3 \n市営地下鉄 13.6 16.2 17.2 16.7 8.8 12.0 9.7 6.4 \nJR 30.5 29.9 32.2 43.0 26.5 21.7 40.4 7.8 \n阪急 15.3 16.2 17.3 13.1 22.1 13.3 13.1 5.6 \n阪神 10.5 10.2 15.8 9.9 5.8 3.9 10.2 3.4 \n山陽 3.3 2.0 2.3 2.6 1.7 1.6 11.7 1.7 \n車、バイク 37.4 15.4 26.9 25.0 41.3 45.1 46.8 83.9 \nレンタカー 1.5 0.7 0.8 0.6 3.9 3.3 1.2 0.9 \nレンタサイクル 0.2 0.5 0.2 0.1 - 0.3 0.2 - \nタクシー 2.5 3.7 2.7 3.3 1.3 2.5 3.0 0.5 \nロープウェー 、ケーブル 7.0 6.2 5.2 2.4 20.4 16.0 2.7 0.6 \nポートライナー、六甲ライナー 5.2 4.7 9.2 3.1 1.5 1.6 4.6 1."
    }
  ]
}

/api/chat/requestが通常のエンドポイントで、/api/chatはストリーミング用のエンドポイントっぽい。

ドキュメントを見る限り、API経由でモデル、ファイル、ツールの設定などもできるっぽい。

kun432kun432

今回はやらないけどllama3やOllama経由でローカルモデルを使う場合にはdocker composeを使えばできるみたい。

kun432kun432

所感

Dify/Vectara/RAGFlowと同じようなRAGプラットフォームアプリ的位置づけだけど、

  • インストールがめちゃめちゃ簡単
  • 認証がない
  • 設定がとてもシンプル
  • アプリケーション用の設定は一つだけ

で、外部に公開するのではなく、手元で動かすのに向いていると思う。その意味で立ち位置が他とは異なる。

設定を変えて別のRAGを作るとかの場合は、別のコンテナを別ポートで立ち上げるっていう感じになりそう。

kun432kun432

あぁ、そうか、Agentic RAGであるというのがウリというかポイントなのかもね。

あらゆる企業でAgentic RAGを使用する最も簡単な方法。

このスクラップは6ヶ月前にクローズされました