ZJU-OmniAI/Data-Copilot
Data-Copilot: Bridging Billions of Data and Humans with Autonomous Workflow
📚 Data-Copilotとは?
Data-Copilotは、中国の金融データに関する自然言語のリクエストを受け取り、それを自動的に完全なデータ分析ワークフローに変換する、オープンソースのLLM駆動型アシスタントです。ユーザーの意図を把握し、データ取得、処理、予測、可視化のステップを計画し、適切なAPIを呼び出し、最終的に簡潔なテキスト要約とチャートやテーブルを返します。これらすべてを手動コーディングなしで行います。
このシステムは大規模言語モデル(GPT-3.5、Azure-GPT-3.5、またはQwen-72B-Chat)を基盤とし、株式、ファンド、マクロ経済指標、企業レポートのためにTushare金融データプラットフォームを利用しています。Gradio Web UIにより、ブラウザ上で誰でもアシスタントを試すことができ、コードベースにはコマンドラインエントリーポイントも含まれています。
🚀 クイックスタート (リポジトリより)
# 1️⃣ クローンして環境を作成
git clone https://github.com/ZJU-OmniAI/Data-Copilot.git
cd Data-Copilot
conda create -n data-copilot python=3.10 -y
conda activate data-copilot
pip install -r requirements.txt
# 2️⃣ 必要なキーをエクスポート (データ用にTushare、LLM用にOpenAI/AzureまたはAlibaba DashScope)
export TUSHARE_TOKEN="your-tushare-token"
export OPENAI_KEY="sk-..." # またはQwen用にDASHSCOPE_API_KEY
# 3️⃣ コマンドラインからデモリクエストを実行
python main.py # ファイル内の `instruction` を編集してクエリを変更
# 4️⃣ またはWeb UIを起動
python app.py # その後、ブラウザで http://127.0.0.1:7860 を開く
Web UIではLLMキーの入力を求められ、リクエスト(例:“Show China’s quarterly GDP growth over the past ten years”)を入力すると、中間ワークフロー、生成されたチャート/テーブル、自然言語による要約が表示されます。
🛠️ 仕組み (高レベルアーキテクチャ)
| コンポーネント | 役割 |
|---|---|
main.py |
5段階のパイプラインをオーケストレーション:意図検出 → タスク計画 → ツール実行 → 可視化 → 要約。 |
tool.py + tool_lib/ |
株価取得、純流入計算、予測モデル呼び出しなどのアトミックな「インターフェースツール」を実装。 |
prompt_lib/ |
各ステージ(意図検出、計画など)でLLMをガイドするシステムプロンプトとFew-shot例を格納。 |
LLMコーラー (lab_gpt4_call.py, lab_llms_call.py, lab_llm_local_call.py) |
OpenAI、Azure-OpenAI、またはAlibaba DashScope (Qwen) にプロンプトを送信し、モデルの応答を返す薄いラッパー。 |
| データソース | Tushare API (中国市場データ) および名前照合用のA株/ファンドのローカル静的リスト。 |
Gradio UI (app.py) |
ユーザーのクエリを main.py に転送し、中間ステップをブラウザにストリーミングするシンプルなWebフロントエンド。 |
LLMはデザイナー(必要なツール呼び出しの記述を作成)とディスパッチャー(順序、並列処理、ループを決定)の両方の役割を果たします。Pythonコードは生成された計画を実行し、生のデータを収集し、可視化プロンプトのためにモデルにフィードバックし、最後にモデルに要約を求めます。
🎬 デモと結果 (READMEに記載)
- サポートされているモデル – GPT-3.5 (OpenAI/Azure) および Qwen-72B-Chat。すべて中国の金融ドメインを処理可能。
- サポートされているデータ – 中国の株式、ファンド、マクロ経済指標、企業財務諸表 (Tushare経由)。デモには以下が含まれます:
- 今年の北向資金の純流入。
- 過去10年間の四半期GDP成長率。
- ループワークフロー:SSE-50指数の各構成銘柄のQ1純利益成長率。
- Webデモでは、結果を折れ線/棒グラフ(中国語対応フォントを使用)とテーブルとして可視化し、読みやすいテキスト要約を出力します。
📦 プロジェクトレイアウト (クイックリファレンス)
Data-Copilot/
├─ main.py # コアパイプラインドライバー
├─ app.py # Gradioフロントエンド
├─ tool.py # 汎用ツール実行エンジン
├─ lab_*.py # LLM APIラッパー (OpenAI, Qwen, ローカルInternLM)
├─ prompt_lib/ # ステージ固有のプロンプトとデモ
├─ tool_lib/ # 各アトミックツールのJSON形式記述
├─ create_tool/ # Tushareツール仕様生成用ヘルパースクリプト
├─ data/ # 名前照合に使用する静的な株式/ファンドリスト
├─ output/ # 生成されたテーブルの保存先
└─ docs/flowchart.md # パイプラインの視覚的フローチャート
📄 ライセンスと引用
コードは MIT License の下で公開されています。研究や製品でシステムを使用する場合は、付属のarXiv論文を引用してください:
@article{zhang2023data,
title={Data-Copilot: Bridging Billions of Data and Humans with Autonomous Workflow},
author={Zhang, Wenqi and Shen, Yongliang and Tan, Zeqi and Hou, Guiyang and Lu, Weiming and Zhuang, Yueting},
journal={arXiv preprint arXiv:2306.07209},
year={2023}
}
🙋♀️ ヘルプが必要な場合
GitHubでIssueを開くか、zhangwenqi@zju.edu.cn までメールで、セットアップ、Tushareクレジットの不足、または他のデータドメインへのシステム拡張に関する質問をお寄せください。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト