Skip to content

ci: dispatchable model-onboarding check (one model, one product) - #128

Open
denispetre wants to merge 2 commits into
mainfrom
feat/model-onboarding-workflow
Open

ci: dispatchable model-onboarding check (one model, one product)#128
denispetre wants to merge 2 commits into
mainfrom
feat/model-onboarding-workflow

Conversation

@denispetre

@denispetre denispetre commented Aug 27, 2026

Copy link
Copy Markdown

Adds model-onboarding.yml (workflow_dispatch): run this repo's langchain integration suite for a single model not in the committed matrix — typically one the LLM Gateway just onboarded — as a chosen requesting product (agents / agenthub / agent-gym / testproduct), against the gateway environment held in a GitHub environment of this repo (LLMGW_SETTINGS = alpha today; a prod-tier one like LLMGW_SETTINGS_PROD once provisioned).

Client selection is driven by the gateway's declared SupportedApiFlavors (input api_flavors), not by model family — each vendor client speaks one flavor, so a model is only exercised through clients whose flavor it declares:

flavor clients
GeminiGenerateContent google (UiPathChatGoogleGenerativeAI), litellm GEMINI_CONFIGS
AnthropicMessages anthropic (UiPathChatAnthropic, vendor_type by vendor) + vertexai / bedrock Anthropic clients, litellm Vertex Claude
AwsBedrockInvoke / AwsBedrockConverse bedrock UiPathChatBedrock / UiPathChatBedrockConverse, litellm invoke / converse
OpenAiChatCompletions / OpenAiResponses openai UiPathAzureChatOpenAI (plain / use_responses_api), litellm chat / responses
NormalizedChat (operation) normalized UiPathChat, thinking/reasoning config by family

Mixed lists (bedrock, openai, litellm) are composed per flavor so e.g. a Converse-only Bedrock model never runs the Invoke client. One documented exception: the gateway declares Vertex-hosted Claude as GeminiGenerateContent (its flavor enum has no Vertex-Anthropic value; it means "Vertex passthrough"), which the script maps to the Anthropic/Vertex clients.

  • scripts/inject_model_into_matrix.py inserts the model into COMPLETIONS_MODELS_WITH_CONFIGS for the run only. Nothing is committed; the cassette DB is neither uploaded nor committed.
  • Same env/secret names as ci.yml's test job. Product-specific feature/operation-code headers derive from the product input.
  • Consumer: UiPath/llm-gateway-config dispatches this (llm-gateway-config#289) whenever a model is routed for agents/agenthub in prod, passing the model's declared flavors.

Verified: gemini-3.7-flash ran 110/110 green through this injection against alpha; the flavor composer was exercised on Gemini, Bedrock (Invoke+Converse+Messages), GPT (chat+responses) and Vertex Claude cases.

🤖 Generated with Claude Code

… product

Runs the langchain integration suite for one model that is not in the committed
matrix (injected for the run only) as agents/agenthub/agent-gym/testproduct, against
the LLM Gateway env held in a GitHub environment (LLMGW_SETTINGS = alpha; a prod-tier
environment can be selected once provisioned). Dispatched by hand or by
UiPath/llm-gateway-config when a model is routed for agents/agenthub in prod.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…dApiFlavors

Each vendor client speaks one gateway API flavor; run a model only through the clients
whose flavor it declares (Gemini generateContent, Anthropic Messages, Bedrock Invoke vs
Converse, OpenAI chat-completions vs responses), composing the bedrock/openai/litellm
entries per flavor instead of guessing by family. New api_flavors + operations inputs.
One documented exception: Vertex-hosted Claude entries declare GeminiGenerateContent as
a stand-in for Vertex passthrough, which for Claude is Anthropic Messages.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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