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クレジットの不足、または他のデータドメインへのシステム拡張に関する質問をお寄せください。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト