Skip to content

Add initial ZhipuAI model support to PyMolAI#6

Open
guoshengtong wants to merge 1 commit intoravishar313:masterfrom
guoshengtong:feature/zhipuai-integration
Open

Add initial ZhipuAI model support to PyMolAI#6
guoshengtong wants to merge 1 commit intoravishar313:masterfrom
guoshengtong:feature/zhipuai-integration

Conversation

@guoshengtong
Copy link
Copy Markdown

Add initial ZhipuAI model support to PyMolAI

This PR adds initial support for ZhipuAI models in PyMolAI through the ZhipuAI Coding Plan API.

The integration uses ZhipuAI's OpenAI-compatible endpoint and allows users to access supported GLM models within the existing PyMolAI workflow.

API endpoint: https://open.bigmodel.cn/api/coding/paas/v4
Environment variable: ZHIPUAI_API_KEY

Scope

This PR includes:

  • a ZhipuAIClient implementation with streaming chat support
  • tool-calling support for compatible requests
  • secure API key storage via system keychain (keyring)
  • a Qt settings dialog for API key configuration
  • runtime routing updates for ZhipuAI models
  • unit tests for model routing

Supported models

Model ID Notes
zhipuai/GLM-5 Supported
zhipuai/GLM-5-Turbo Supported
zhipuai/GLM-4.7 Supported
zhipuai/GLM-4.6 Supported
zhipuai/GLM-4.5 Supported
zhipuai/GLM-4.5-Air Supported

Files changed

New files

  • modules/pymol/ai/zhipuai_client.py — ZhipuAI API client
  • modules/pymol/ai/zhipuai_api_key_store.py — API key storage
  • modules/pmg_qt/ai_zhipuai_api_key_dialog.py — Qt settings dialog
  • testing/tests/api/test_ai_zhipuai_routing.py — Unit tests

Updated files

  • modules/pymol/ai/models.py — Added ZhipuAI model definitions
  • modules/pymol/ai/runtime.py — Added ZhipuAI routing logic
  • modules/pmg_qt/pymol_qt_gui.py — Added GUI/menu integration
  • AGENTS.md — Updated documentation
  • .gitignore — Added build artifacts

Testing

The following were verified successfully:

  • keyring / openai imports
  • claude-agent-sdk import
  • PyQt5 import
  • ZhipuAI client import
  • ZhipuAI model definitions
  • ZhipuAI routing unit tests

Usage

  1. Set the ZHIPUAI_API_KEY environment variable, or save the key through the GUI dialog
  2. Select a model, for example:
    /ai model zhipuai/GLM-5

This PR adds direct ZhipuAI (智谱AI) Coding Plan API integration
to PyMolAI, enabling users to use GLM models directly via
ZhipuAI's OpenAI-compatible endpoint.

Features:
- ZhipuAIClient for streaming chat with tool calling support
- API key storage using system keychain (keyring)
- Qt GUI settings dialog for ZhipuAI API key configuration
- Model routing logic in runtime.py
- Unit tests for ZhipuAI routing

New files:
- modules/pymol/ai/zhipuai_client.py
- modules/pymol/ai/zhipuai_api_key_store.py
- modules/pmg_qt/ai_zhipuai_api_key_dialog.py
- testing/tests/api/test_ai_zhipuai_routing.py

Modified files:
- modules/pymol/ai/models.py (added ZhipuAI models)
- modules/pymol/ai/runtime.py (added routing logic)
- modules/pmg_qt/pymol_qt_gui.py (added menu)
- AGENTS.md (updated docs)

API Endpoint: https://open.bigmodel.cn/api/coding/paas/v4
Environment Variable: ZHIPUAI_API_KEY

Supported Models:
- zhipuai/GLM-5 (Latest GLM-5 model)
- zhipuai/GLM-5-Turbo (Faster variant)
- zhipuai/GLM-4.7, GLM-4.6, GLM-4.5, GLM-4.5-Air

Co-authored-by: guoshengtong <xiaotontong@outlook.com>
@ravishar313
Copy link
Copy Markdown
Owner

Hey, Z.ai models are already supported through OpenRouter, do you think adding them separately is worth it?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants