Skip to content

feat(region): add multi-region endpoint and workspace support - #189

Open
luk384090-cloud wants to merge 11 commits into
mainfrom
dev/issues-8
Open

feat(region): add multi-region endpoint and workspace support#189
luk384090-cloud wants to merge 11 commits into
mainfrom
dev/issues-8

Conversation

@luk384090-cloud

Copy link
Copy Markdown
Collaborator
  • Introduce set_region(region, workspace_id) to switch HTTP, WebSocket, and OpenAI-compatible endpoints
  • Add support for MaaS international regions including Singapore, US East, Hong Kong, Germany, Japan, besides Beijing
  • Enable environment variable configuration for region and workspace ID
  • Implement runtime resolution of endpoint URLs with {workspace_id} placeholder substitution
  • Update internal API methods to support per-call workspace parameter for endpoint resolution
  • Enhance documentation with detailed usage examples of multi-region configuration
  • Add comprehensive unit tests covering region switching, URL resolving, and environment variable handling

Description

[Describe what this PR does and why]

Related Issue: Fixes #[issue_number] or Relates to #[issue_number]

Security Considerations: [Check if API keys or sensitive credentials are exposed in code/logs]

Type of Change

  • Bug fix
  • New feature
  • Breaking change
  • Documentation
  • Refactoring

Component(s) Affected

  • Model
  • Application
  • Common
  • Documentation
  • Tests
  • CI/CD

Checklist

  • Pre-commit hooks pass
  • Tests pass locally
  • Documentation updated (if needed)
  • Ready for review

Testing

[How to test these changes]

Additional Notes

[Optional: any other context]

zhansheng.lzs and others added 11 commits September 5, 2026 19:49
The warning quotes a literal 'dashscope[rl]', which rich reads as a style
tag and drops — users were told to run `pip install 'dashscope'`, which
installs none of the extras the message is about. Escape the exception
text.

Also drop the duplicated instruction: the reinforcement package's
ImportError already says how to install, so the CLI appended a second
copy. The hint is now added only when the underlying message lacks one.
Mirrors agenticCLI 1acdd7b. A provider persisted from a directory that
had a custom-extensions.toml (e.g. zhipu) cannot be built elsewhere, and
both entry points mishandled it: startup demanded an API key for a
provider with no definition and suggested an env var nothing reads, and
/provider offered that unbuildable name as the Enter default so a bare
Enter returned "Unknown provider: zhipu; cancelled".
- Introduce `set_region(region, workspace_id)` to switch HTTP, WebSocket, and OpenAI-compatible endpoints
- Add support for MaaS international regions including Singapore, US East, Hong Kong, Germany, Japan, besides Beijing
- Enable environment variable configuration for region and workspace ID
- Implement runtime resolution of endpoint URLs with `{workspace_id}` placeholder substitution
- Update internal API methods to support per-call workspace parameter for endpoint resolution
- Enhance documentation with detailed usage examples of multi-region configuration
- Add comprehensive unit tests covering region switching, URL resolving, and environment variable handling
API keys cannot be mixed across regions (401 on mismatch), so document
this next to set_region in both READMEs and the sample. Also document
US -us model suffix, EU/JP workspace deployment scope, feature
availability limits, and shared-domain overrides. Derive the
set_region region list from env.MAAS_REGIONS to prevent drift.
Per the official realtime WebSocket API docs, wss endpoints exist only
for cn-beijing and ap-southeast-1; set_region still sets the URL for
other regions, so warn that WS-based realtime APIs are unavailable there.
- providers/tongyi: switch from compatible-mode to the native
  generation route so calls land in the native SLS logstore; per-model
  text/multimodal-generation endpoint fallback covering both the
  HTTP-400 and the 200-SSE error-event variants of "url error";
  content parts/tool calls converted to the native shape
- embedded/sdk: new module + guide_url params; the dashscope expert
  entry stamps x-dashscope-sdk-client as acli/<version>/expert and the
  TUI/REPL startup banners show the locale-aware expert guide link
- first-run surfaces: get-api-key and dashscope-sdk-expert links in
  the no-key gate, the example-download offer, and the example README
- README/README_zh: how to obtain an API key + expert guide link
- includes the pending acli sync baseline (provider/key wizard fixes,
  subagents/config/dev/session/adapter updates)
…majors

Python 3.8 is 0.09% of recent downloads (pypistats, last 30 days) and
textual 8.x requires 3.9+, so py3.8 silently back-resolved the acli TUI
to an untested textual 6.x. Raise python_requires to >=3.9, widen the
CI matrix to 3.9-3.13 (it only ran 3.8), unify the httpx floor at 0.27
with agenticCLI, cap textual/anthropic/openai below their next breaking
majors, and switch the camera extra to opencv-python-headless (acli only
uses non-GUI cv2 APIs; headless drops the libGL system dependency).
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.

1 participant