feat: add Atlas Cloud LLM plugin - #616
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (3)
🚧 Files skipped from review as they are similar to previous changes (3)
📝 WalkthroughWalkthroughAdds an Atlas Cloud plugin package using an OpenAI-compatible Chat Completions client. The plugin defines default model and endpoint settings, resolves API keys from constructor arguments or supported environment variables, supports custom clients and base URLs, and exports Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
🧹 Nitpick comments (4)
plugins/atlascloud/pyproject.toml (1)
13-16: 🗄️ Data Integrity & Integration | 🔵 Trivial | ⚡ Quick winDeclare
openaias a direct dependency.
llm.pyimportsAsyncOpenAIdirectly, but this package relies onvision-agents-plugins-openaito provide it transitively. Add a compatibleopenairequirement so future changes to that package cannot break this plugin’s import contract.plugins/atlascloud/vision_agents/plugins/atlascloud/llm.py (2)
3-3: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winGuard the annotation-only OpenAI import with
TYPE_CHECKING.
AsyncOpenAIis only referenced by the constructor annotation. Move the import underTYPE_CHECKINGand quote the annotation; this repository forbidsfrom __future__ import annotations.As per coding guidelines, use
TYPE_CHECKINGfor imports needed only by type annotations.Proposed change
import os +from typing import TYPE_CHECKING -from openai import AsyncOpenAI from vision_agents.plugins.openai import ChatCompletionsLLM +if TYPE_CHECKING: + from openai import AsyncOpenAI + ... - client: AsyncOpenAI | None = None, + client: "AsyncOpenAI | None" = None,Also applies to: 20-20
Source: Coding guidelines
6-7: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winAdd annotations to module constants and
provider_name.Annotate these string values with
: str.As per coding guidelines, use type annotations everywhere.
Also applies to: 13-13
Source: Coding guidelines
plugins/atlascloud/tests/test_atlascloud_llm.py (1)
9-53: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winAnnotate test fixtures, parameters, and return types.
Add
pytest.MonkeyPatch,str, and-> Noneannotations to the test methods. Apply the same pattern to all four tests.As per coding guidelines, use type annotations everywhere.
Source: Coding guidelines
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro Plus
Run ID: 9961d4a2-4490-45e7-b4ed-a9443f1012ad
⛔ Files ignored due to path filters (1)
uv.lockis excluded by!**/*.lock
📒 Files selected for processing (8)
agents-core/pyproject.tomlplugins/atlascloud/README.mdplugins/atlascloud/pyproject.tomlplugins/atlascloud/tests/__init__.pyplugins/atlascloud/tests/test_atlascloud_llm.pyplugins/atlascloud/vision_agents/plugins/atlascloud/__init__.pyplugins/atlascloud/vision_agents/plugins/atlascloud/llm.pypyproject.toml
Summary
ATLASCLOUD_API_KEYandATLAS_CLOUD_API_KEY, withhttps://api.atlascloud.ai/v1anddeepseek-ai/deepseek-v4-prodefaultsvision-agents[atlascloud]optional dependencyValidation
uvx ruff check plugins/atlascloud/vision_agents plugins/atlascloud/testspytest -c /dev/null --confcutdir=plugins/atlascloud --asyncio-mode=auto plugins/atlascloud/tests -q(5 passed)mypy --config-file pyproject.toml plugins/atlascloud/vision_agents plugins/atlascloud/testsuv build --package vision-agents-plugins-atlascloud/v1/modelsreturned 121 models and confirmed the configured model IDs/v1/chat/completionsreturned HTTP 200 withdeepseek-ai/deepseek-v4-flashuv lock --checkandgit diff --checkDocumentation scope
The new package README only contains the installation and API configuration required by the repository plugin packaging convention. No root README, logo, sponsor, credits, or partner content is changed.