🙌
deepwiki-openをAzure OpenAIだけで動かす+Langfuseで監視する
こやつです。
そのままだと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