π Google ADK Hackathon Submission - Enterprise AI Multi-Agent System
Language Options: πΊπΈ English | π¨π³ δΈζ
Welcome to Chart Coordinator Project! This is an enterprise-grade, intelligent chart rendering system built on Google's Agent Development Kit (ADK) framework. It understands your needs through natural language and automatically selects the most suitable visualization tool to generate a wide range of charts, from simple flowcharts to complex 3D models and interactive maps.
This project is a submission for the Google ADK Hackathon.
- Python 3.10+ (Recommended: 3.11)
- Node.js 18+ LTS
- Java JRE 8+ (for PlantUML)
- Graphviz (for graph rendering)
Quick System Dependencies Installation:
# Windows (using winget - recommended)
winget install OpenJS.NodeJS.LTS
winget install Oracle.JavaRuntimeEnvironment
winget install Graphviz.Graphviz
# Verify installation
node --version
java --version
dot -VFor detailed dependency lists and version requirements, please check
chart_coordinator_project/requirements.txtandpackage.json
git clone https://github.com/workdocyeye/ADK-Chart-Master.git
cd ADK-Chart-Master# Create virtual environment (recommended)
python -m venv venv
# Activate virtual environment
# Windows PowerShell:
.\venv\Scripts\Activate.ps1
# Windows CMD:
# venv\Scripts\activate.bat
# macOS/Linux:
# source venv/bin/activate
# Enter project core directory and install Python dependencies
cd chart_coordinator_project
pip install -r requirements.txt
# Important: Install latest Google ADK framework
pip install git+https://github.com/google/adk-python.git@main# In chart_coordinator_project directory
npm install
# Install global tools (Important! Ensures Mermaid tools work properly)
# Note: May require administrator privileges
npm install -g @mermaid-js/mermaid-cli
# Verify installation (if failed, restart terminal and try again)
mmdc --version# In chart_coordinator_project directory, copy environment template
copy .env.example .env
# Edit .env file, set your Deepseek API key
# Replace DEEPSEEK_API_KEY=your-actual-deepseek-api-key-here
# with DEEPSEEK_API_KEY=sk-your-real-keyGet Deepseek API Key: Visit https://platform.deepseek.com/ to register and obtain API key.
# Return to project root directory (same level as README.md)
cd ..
# Start ADK Web service
adk web
# If adk command is not available, install latest version:
pip install git+https://github.com/google/adk-python.git@mainOpen browser and visit: http://localhost:8000
You will see the ADK Web UI, select chart_coordinator_project to start using.
If you encounter issues after installation, check the following:
- Python Version: Ensure β₯3.10
- Dependencies Installation: Check if required packages are in
pip list - API Key: Confirm
DEEPSEEK_API_KEYin.envfile is correctly set - System Dependencies: Confirm Java, Graphviz, Node.js are installed
After successful startup, try these tests:
- Simple Chart:
Create a sine function plot using matplotlib - Flowchart:
Draw a user login flowchart - Data Visualization:
Create a box plot using seaborn - 3D Molecule:
Show 3D structure of caffeine molecule with py3Dmol - Interactive Chart:
Create an interactive pie chart with ECharts
Important Notice: Docker deployment is currently experimental, with some rendering tools having compatibility issues in container environments. For best experience and full functionality, strongly recommend using the local installation method above.
β οΈ Mermaid Tools: May not render properly in Docker environment (Puppeteer/Chrome sandbox issues)β οΈ Some JavaScript Tools: Working normally (Matplotlib, Plotly, Seaborn, etc.)- β Most Python Tools: May have module loading or Chinese font rendering issues
If you still want to try Docker deployment:
# Clone project
git clone https://github.com/workdocyeye/ADK-Chart-Master.git
cd ADK-Chart-Master
# Build image
docker build -t chart-coordinator .
# Run container
docker run -it --rm -p 8000:8000 -e DEEPSEEK_API_KEY="your_api_key_here" --name chart-coordinator-app chart-coordinatorBrowser access: http://localhost:8000
Docker optimization work is in progress, future versions will resolve container compatibility issues.
# Solution 1: Check if properly installed
pip show google-adk
# Solution 2: If PyPI version has issues, install GitHub development version
pip uninstall google-adk
pip install git+https://github.com/google/adk-python.git@main# Ensure Java is installed
java -version
# plantuml.jar will auto-download, if issues occur, can manually download# Ensure in correct directory and check Python path
cd chart_coordinator_project
python -c "import llm_driven_chart_system; print('Import successful')"# Check port 8000 usage
netstat -ano | findstr :8000
# Kill occupying process or use different port
adk web --port 8001# Ensure global installation of mermaid-cli
npm install -g @mermaid-js/mermaid-cli
# Verify installation
mmdc --version
# If still issues, can use npx for temporary calls
npx @mermaid-js/mermaid-cli --version- π€ AI Intelligent Decision-Making: Fully intelligent system based on Large Language Models (LLM), automatically analyzing user needs and selecting the most suitable expert agents and rendering tools
- π₯ Expert Team Collaboration: 5 professional AI agents (Data Visualization Expert, Flow Architect Expert, etc.) working together to ensure optimal solutions
- π οΈ 15+ Rendering Tool Ecosystem: Seamlessly integrated with industry-leading chart libraries like Matplotlib, Plotly, ECharts, D3.js, Graphviz
- π Multi-format Output: Supports static images (PNG, SVG, PDF) and interactive HTML file generation
- π§ Fully Extensible: Modular architecture based on Google ADK framework, easily add new tools or agents
- π’ Enterprise-grade Localization: 100% using Deepseek models, ensuring data privacy security and stable performance
- β Production Environment Ready: Local deployment solution thoroughly tested, 14 out of 15 tools completely stable and available
Fully Stable (14/15):
- β Python Tools (7/7): Matplotlib, Plotly, Seaborn, Folium, PyVis, Py3dmol, Mplfinance
- β JavaScript Tools (4/5): ECharts, D3.js, Dygraphs, FlowchartJS
- β Universal Tools (3/3): PlantUML, Graphviz, Mermaid(local environment)
Needs Optimization (1/15):
β οΈ ThreeJS: Container environment ES6 module compatibility pending improvement
Local Deployment: 15/15 tools fully available
Docker Deployment: 14/15 tools available (ThreeJS excluded)
Click to expand: System Architecture Diagram
The project follows a multi-agent, hierarchical design pattern. A central coordinator agent analyzes requests and delegates them to a team of specialists, who in turn use a shared pool of rendering tools.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Chart Coordinator Project β
β (Intelligent Chart System) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββ΄ββββββββββ
β 5 Specialist AI Agents β
βββββββββββ¬ββββββββββ
β
βββββββββββββββββββββββΌββββββββββββββββββββββ
β β β
βββββΌββββ βββββββΌββββββ βββββββΌββββββ
βFlow β βConceptual β βInteractiveβ
βArchitect Expert βMind Expertβ βDynamic Expertβ
βββββ¬ββββ βββββββ¬ββββββ βββββββ¬ββββββ
β β β
ββββββΌβββββ βββββββΌββββββ βββββββΌββββββ
βDataViz β βDocument β β (etc.) β
βExpert β βChart Expertβ β β
βββββββββββ βββββββββββββ βββββββββββββ
β
βββββββββββΌββββββββββ
β 15+ Rendering Tools β
βββββββββββ¬ββββββββββ
β
βββββββββββββββββββββββββββΌββββββββββββββββββββββββββ
β β β
βββββΌββββ βββββββΌββββββ βββββββββΌββββββββ
βPython Tools βJavaScript Tools β Universal Tools β
β(Matplotlib, Plotly..) β(ECharts, D3.js..) β (Mermaid, PlantUML..)β
βββββββββ βββββββββββββ βββββββββββββββββ
Click to expand: Agent and Tool Details
| Agent | Expertise | Primary Tools |
|---|---|---|
| FlowArchitectExpert | Business Processes, System Architecture | Mermaid, PlantUML, Graphviz, FlowchartJS |
| ConceptualMindExpert | Mind Maps, Knowledge Graphs | Mermaid, Graphviz, PyVis, Plotly |
| DataVizExpert | Data Analysis, Statistical Charts | Matplotlib, Plotly, Seaborn, ECharts, Folium |
| InteractiveDynamicExpert | Real-time Data, 3D, Interactive Dashboards | Plotly, ECharts, ThreeJS, Dygraphs |
| DocumentChartExpert | Technical Docs, Report Graphics | Mermaid, Matplotlib, PlantUML |
A suite of 15+ fully integrated visualization tools is available.
| Tool | Domain | Output | Status |
|---|---|---|---|
| Matplotlib | Scientific Plotting | PNG/SVG/PDF | β Available |
| Plotly | Interactive Viz | HTML/PNG | β Available |
| Seaborn | Statistical Viz | PNG/PDF | β Available |
| PyVis | Network Graphs | HTML | β Available |
| Mplfinance | Financial Charts | PNG/PDF | β Available |
| Py3dmol | Molecular Viz | HTML/PNG | β Available |
| Folium | Geospatial Maps | HTML | β Available |
| Tool | Domain | Output | Status |
|---|---|---|---|
| ECharts | Enterprise Viz | HTML/PNG | β Available |
| D3.js | Custom Viz | HTML/SVG | β Available |
| Dygraphs | Time-Series Data | HTML/PNG | β Available |
| ThreeJS | 3D Rendering | HTML | β Available |
| Flowchart.js | Simple Flowcharts | HTML/PNG | β Available |
| Tool | Domain | Output | Status |
|---|---|---|---|
| Mermaid | Diagram as Code | PNG/SVG | β Available |
| PlantUML | UML Diagrams | PNG/SVG | β Available |
| Graphviz | Graph Theory Viz | PNG/SVG | β Available |
Click to expand: Developer Guide & Best Practices
ADK Tool Registration: A key pattern in the ADK framework is the _get_declaration() method, which every tool must implement to describe its interface to the LLM.
# Every tool must provide this method
def _get_declaration(self) -> Optional[types.FunctionDeclaration]:
return types.FunctionDeclaration(
name=self.name,
description=self.description,
parameters=types.Schema(
type=types.Type.OBJECT,
properties={
# Precise parameter definitions go here
},
required=['list_of_required_parameters']
)
)Cross-Platform Compatibility:
- PowerShell Commands: Use semicolons (
;) instead of&&to chain commands. - File Encoding: Explicitly use
encoding='utf-8'anderrors='replace'when runningsubprocesscalls to handle character encoding issues, especially on Windows.
Dependency Management: Each tool performs a self-check for its dependencies (Python libraries, system commands) upon initialization. The agent only loads tools that are fully operational, making the system resilient to incomplete environments.
- Create a new tool class that inherits from
tools.base_render_tool.BaseRenderTool. - Implement the required
_get_declaration()and_render_sync()methods. - Add a dependency self-check method (
_check_dependencies()). - Instantiate your new tool in the appropriate agent file (e.g.,
agents/data_visualization_agent.py). - Add the new tool instance to the
toolslist of that agent.
- β Architecture Completion: 100% (5 AI agents + 15 rendering tools)
- β Local Deployment Stability: 15/15 tools fully available
- β Docker Deployment Stability: 14/15 tools available (93.3% availability rate)
- β Enterprise Features: Full localization, Deepseek model driven
- β Code Quality: Detailed comments, comprehensive error handling, unified coding standards
- V1.1 Plan: Docker container compatibility optimization (Mermaid/ThreeJS issue fixes)
- V1.2 Plan: More rendering tool integrations (Bokeh, Altair, etc.)
- V2.0 Vision: Real-time collaboration, cloud deployment, API service
This project is an enterprise-grade intelligent chart generation system specially developed for the Google ADK Hackathon, showcasing the powerful capabilities of the ADK framework in complex multi-agent collaboration scenarios.
- Google ADK Team: Provided excellent Agent development framework
- Deepseek Team: High-quality AI model support
- Open Source Community: Excellent visualization libraries like Matplotlib, D3.js, ECharts
- π Data Privacy: 100% localized deployment, all data processing completed in user environment
- π Production Ready: Enterprise-grade code quality, directly usable in production environments
- π Education Friendly: Detailed documentation and comments, suitable for learning ADK framework and multi-agent system development
This project is released under the Apache License 2.0 open source license.
Copyright 2025 Chart Coordinator Project Contributors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Recommended to use local deployment for the best experience!
- Clone project:
git clone https://github.com/workdocyeye/ADK-Chart-Master.git - Install dependencies: Enter directory, install Python and Node.js dependencies
- Configure API: Set Deepseek API key
- Start service:
adk web - Begin using: Browser visit http://localhost:8000
Experience the powerful functionality of intelligent chart generation immediately! π