🙌

deepwiki-openをAzure OpenAIだけで動かす+Langfuseで監視する

に公開

こやつです。

https://github.com/AsyncFuncAI/deepwiki-open

そのままだとOpenAIのAPIキーを設定しないと動いてくれない

環境準備

Macで動かします
クローンして仮想環境を準備
Python3.12である必要があるので切り替える

git clone https://github.com/AsyncFuncAI/deepwiki-open
cd deepwiki-open
pyenv install 3.12.4
pyenv local 3.12.4
python -m venv ven
source ven/bin/activate

設定/ソースを修正

api/requirements.txtを修正

fastapi>=0.95.0
uvicorn[standard]>=0.21.1
pydantic>=2.0.0
google-generativeai>=0.3.0
tiktoken>=0.5.0
adalflow>=0.1.0
numpy>=1.24.0
faiss-cpu>=1.7.4
langid>=1.1.6
requests>=2.28.0
jinja2>=3.1.2
python-dotenv>=1.0.0
openai>=1.76.2
ollama>=0.4.8
aiohttp>=3.8.4
boto3>=1.34.0
websockets>=11.0.3
azure-identity>=1.12.0
azure-core>=1.24.0
langfuse ⭐️これを追加

ルートディレクトリに.envファイルを作成

AZURE_OPENAI_API_KEY=<APIキーを記載>
AZURE_OPENAI_ENDPOINT=<エンドポイントを記載>
AZURE_OPENAI_VERSION=<APIバージョンを記載>
LANGFUSE_SECRET_KEY=<Langfuseのキーを記載>
LANGFUSE_PUBLIC_KEY=<Langfuseのキーを記載>
LANGFUSE_HOST=<LangfuseのURLを記載>

api/config/embedder.jsonを修正

{
  "embedder": {
    "client_class": "AzureAIClient", ⭐️OpenAIClientからAzureAIClientに変更
    "batch_size": 500,
    "model_kwargs": {
      "model": "text-embedding-3-small", ⭐️同じ名前でAzureにデプロイしておく
      "dimensions": 256,
      "encoding_format": "float"
    }
  },
  "retriever": {
    "top_k": 20
  },
  "text_splitter": {
    "split_by": "word",
    "chunk_size": 350,
    "chunk_overlap": 100
  }
}

同様にGPTもgpt-4oという名前でデプロイしておきます

api/azureai_client.pyを修正

from langfuse.openai import AzureOpenAI ⭐️追加
from openai import AsyncAzureOpenAI, Stream ⭐️AzureOpenAIを削除

依存関係をインストールして起動

バックエンドを起動する

pip install -r api/requirements.txt
python -m api.main

フロントエンドを起動する

Next.jsの匿名テレメトリーをオプトアウトする

npx next telemetry disable

起動する
自分の場合はNode20で動かしてる

npm install
npm run dev 

確認する

ブラウザを起動すると動いてるのがわかる
対象のリポジトリのURLを入力し、Wikiを生成ボタンを押して必要な項目を入力後、Wikiを生成する

Wiki生成後、Langfuseにもデータが飛んでることが確認できる

Discussion