feat: add OCID resolution for all GenAI models (fixes 404 on OpenAI)
Models like OpenAI GPT-5.2 require the full OCID rather than the short model_id. The catalog now maps model IDs to OCIDs per region (us-ashburn-1). _call_genai and _embed_text resolve the OCID for the configured region at runtime, falling back to short model_id for unmapped regions. New models added from OCI portal: GPT-5.3/5.2/5.1/5 Codex, GPT Image 1/1.5, Llama Guard 4, ProtectAI DeBERTa, OpenAI Text Embedding 3 Large/Small. Total: 69 chat + 11 embedding models.
This commit is contained in:
49
README.md
49
README.md
@@ -32,7 +32,8 @@ The platform combines security compliance scanning, AI-powered chat with **RAG (
|
||||
### 🤖 AI Chat Agent with RAG
|
||||
- **OCI Generative AI** integration via official SDK (`oci.generative_ai_inference`)
|
||||
- **RAG (Retrieval-Augmented Generation)**: automatically queries ADB vector store for relevant context before generating responses
|
||||
- 63 models across 5 providers: **Cohere** (Command A/R/R+), **Meta** (Llama 4/3.3/3.2/3.1), **Google** (Gemini 2.5 Pro/Flash/Flash-Lite), **OpenAI** (GPT-5.2/5.1/5/4.1/4o, o1/o3/o4-mini, GPT Audio, GPT-oss), **xAI** (Grok 4.1/4/3 + reasoning/fast variants)
|
||||
- 69 chat models + 11 embedding models across 6 providers: **Cohere**, **Meta**, **Google**, **OpenAI** (GPT-5.3/5.2/5.1/5/4.1/4o, Codex, Image, Audio, o1/o3/o4-mini, GPT-oss), **xAI** (Grok 4.1/4/3), **ProtectAI**
|
||||
- OCID-based model resolution: catalog maps model IDs to OCI resource IDs per region for reliable API calls
|
||||
- 16 OCI regions supported with auto-generated endpoints
|
||||
- Full parameter control: temperature, max_tokens, top_p, top_k, frequency/presence penalty
|
||||
- Conversation history with session management
|
||||
@@ -399,7 +400,9 @@ oci-cis-agent/
|
||||
|
||||
---
|
||||
|
||||
## Supported GenAI Models (63 Chat + 9 Embedding)
|
||||
## Supported GenAI Models (69 Chat + 11 Embedding)
|
||||
|
||||
All models include OCID mapping for `us-ashburn-1`. For other regions, use the "Personalizado (usar OCID)" option.
|
||||
|
||||
### Chat Models
|
||||
|
||||
@@ -412,21 +415,24 @@ oci-cis-agent/
|
||||
| Cohere | Command R (08-2024) | `cohere.command-r-08-2024` | COHERE |
|
||||
| Meta | Llama 4 Maverick | `meta.llama-4-maverick-17b-128e-instruct-fp8` | GENERIC |
|
||||
| Meta | Llama 4 Scout | `meta.llama-4-scout-17b-16e-instruct` | GENERIC |
|
||||
| Meta | Llama 3.3 (70B) | `meta.llama-3.3-70b-instruct` | GENERIC |
|
||||
| Meta | Llama 3.2 90B Vision | `meta.llama-3.2-90b-vision-instruct` | GENERIC |
|
||||
| Meta | Llama 3.2 11B Vision | `meta.llama-3.2-11b-vision-instruct` | GENERIC |
|
||||
| Meta | Llama 3.1 (405B) | `meta.llama-3.1-405b-instruct` | GENERIC |
|
||||
| Meta | Llama Guard 4 (12B) | `meta.llama-guard-4-12b` | GENERIC |
|
||||
| Google | Gemini 2.5 Pro | `google.gemini-2.5-pro` | GENERIC |
|
||||
| Google | Gemini 2.5 Flash | `google.gemini-2.5-flash` | GENERIC |
|
||||
| Google | Gemini 2.5 Flash-Lite | `google.gemini-2.5-flash-lite` | GENERIC |
|
||||
| OpenAI | GPT-5.3 Codex | `openai.gpt-5.3-codex` | GENERIC |
|
||||
| OpenAI | GPT-5.2 Codex | `openai.gpt-5.2-codex` | GENERIC |
|
||||
| OpenAI | GPT-5.2 Pro | `openai.gpt-5.2-pro` | GENERIC |
|
||||
| OpenAI | GPT-5.2 Pro (2025-12-11) | `openai.gpt-5.2-pro-2025-12-11` | GENERIC |
|
||||
| OpenAI | GPT-5.2 | `openai.gpt-5.2` | GENERIC |
|
||||
| OpenAI | GPT-5.2 (2025-12-11) | `openai.gpt-5.2-2025-12-11` | GENERIC |
|
||||
| OpenAI | GPT-5.2 Chat Latest | `openai.gpt-5.2-chat-latest` | GENERIC |
|
||||
| OpenAI | GPT-5.2 Pro (2025-12-11) | `openai.gpt-5.2-pro-2025-12-11` | GENERIC |
|
||||
| OpenAI | GPT-5.1 Codex Max | `openai.gpt-5.1-codex-max` | GENERIC |
|
||||
| OpenAI | GPT-5.1 Codex | `openai.gpt-5.1-codex` | GENERIC |
|
||||
| OpenAI | GPT-5.1 Codex Mini | `openai.gpt-5.1-codex-mini` | GENERIC |
|
||||
| OpenAI | GPT-5.1 | `openai.gpt-5.1` | GENERIC |
|
||||
| OpenAI | GPT-5.1 (2025-11-13) | `openai.gpt-5.1-2025-11-13` | GENERIC |
|
||||
| OpenAI | GPT-5.1 Chat Latest | `openai.gpt-5.1-chat-latest` | GENERIC |
|
||||
| OpenAI | GPT-5 Codex | `openai.gpt-5-codex` | GENERIC |
|
||||
| OpenAI | GPT-5 | `openai.gpt-5` | GENERIC |
|
||||
| OpenAI | GPT-5 (2025-08-07) | `openai.gpt-5-2025-08-07` | GENERIC |
|
||||
| OpenAI | GPT-5 Mini | `openai.gpt-5-mini` | GENERIC |
|
||||
@@ -447,6 +453,8 @@ oci-cis-agent/
|
||||
| OpenAI | GPT-4o Mini Search (2025-03-11) | `openai.gpt-4o-mini-search-preview-2025-03-11` | GENERIC |
|
||||
| OpenAI | GPT-4o Search Preview | `openai.gpt-4o-search-preview` | GENERIC |
|
||||
| OpenAI | GPT-4o Search (2025-03-11) | `openai.gpt-4o-search-preview-2025-03-11` | GENERIC |
|
||||
| OpenAI | GPT Image 1.5 | `openai.gpt-image-1.5` | GENERIC |
|
||||
| OpenAI | GPT Image 1 | `openai.gpt-image-1` | GENERIC |
|
||||
| OpenAI | GPT Audio | `openai.gpt-audio` | GENERIC |
|
||||
| OpenAI | o4-mini | `openai.o4-mini` | GENERIC |
|
||||
| OpenAI | o4-mini (2025-04-16) | `openai.o4-mini-2025-04-16` | GENERIC |
|
||||
@@ -468,22 +476,25 @@ oci-cis-agent/
|
||||
| xAI | Grok 3 Fast | `xai.grok-3-fast` | GENERIC |
|
||||
| xAI | Grok 3 Mini Fast | `xai.grok-3-mini-fast` | GENERIC |
|
||||
| xAI | Grok Code Fast 1 | `xai.grok-code-fast-1` | GENERIC |
|
||||
| ProtectAI | DeBERTa Prompt Injection v2 | `protectai.deberta-v3-base-prompt-injection-v2` | GENERIC |
|
||||
|
||||
> **Custom OCID**: You can also use any model available in your region by selecting "Personalizado (usar OCID)" and providing the full model OCID.
|
||||
|
||||
### Embedding Models
|
||||
|
||||
| Provider | Model | Dimensions |
|
||||
|----------|-------|------------|
|
||||
| Cohere | Embed v4.0 (Multimodal) | 1536 |
|
||||
| Cohere | Embed English v3.0 | 1024 |
|
||||
| Cohere | Embed Multilingual v3.0 | 1024 |
|
||||
| Cohere | Embed English Light v3.0 | 384 |
|
||||
| Cohere | Embed Multilingual Light v3.0 | 384 |
|
||||
| Cohere | Embed English Image v3.0 | 1024 |
|
||||
| Cohere | Embed Multilingual Image v3.0 | 1024 |
|
||||
| Cohere | Embed English Light Image v3.0 | 384 |
|
||||
| Cohere | Embed Multilingual Light Image v3.0 | 384 |
|
||||
| Provider | Model | Model ID | Dimensions |
|
||||
|----------|-------|----------|------------|
|
||||
| Cohere | Embed v4.0 (Multimodal) | `cohere.embed-v4.0` | 1536 |
|
||||
| OpenAI | Text Embedding 3 Large | `openai.text-embedding-3-large` | 3072 |
|
||||
| OpenAI | Text Embedding 3 Small | `openai.text-embedding-3-small` | 1536 |
|
||||
| Cohere | Embed English v3.0 | `cohere.embed-english-v3.0` | 1024 |
|
||||
| Cohere | Embed Multilingual v3.0 | `cohere.embed-multilingual-v3.0` | 1024 |
|
||||
| Cohere | Embed English Light v3.0 | `cohere.embed-english-light-v3.0` | 384 |
|
||||
| Cohere | Embed Multilingual Light v3.0 | `cohere.embed-multilingual-light-v3.0` | 384 |
|
||||
| Cohere | Embed English Image v3.0 | `cohere.embed-english-image-v3.0` | 1024 |
|
||||
| Cohere | Embed Multilingual Image v3.0 | `cohere.embed-multilingual-image-v3.0` | 1024 |
|
||||
| Cohere | Embed English Light Image v3.0 | `cohere.embed-english-light-image-v3.0` | 384 |
|
||||
| Cohere | Embed Multilingual Light Image v3.0 | `cohere.embed-multilingual-light-image-v3.0` | 384 |
|
||||
|
||||
### GenAI Regions
|
||||
|
||||
@@ -511,7 +522,7 @@ oci-cis-agent/
|
||||
|
||||
| Version | Date | Changes |
|
||||
|---------|------|---------|
|
||||
| **v1.4** | 2026-03 | In-place config editing (OCI, GenAI, ADB, MCP), 63 chat models (OpenAI GPT-5.2/5.1/5/4.1/4o, o1/o3/o4-mini, xAI Grok 4.1/4/3, Google Gemini 2.5, Meta Llama 4, Cohere Command A), custom OCID model support, Cohere Embed v4.0 multimodal, wallet auto-parse with DSN extraction |
|
||||
| **v1.4** | 2026-03 | In-place config editing, 69 chat + 11 embedding models with OCID resolution (OpenAI GPT-5.3/5.2/5.1/5/4.1/4o/Codex/Image/Audio, xAI, Google, Meta, ProtectAI), OpenAI Text Embedding 3, custom OCID support, wallet auto-parse with DSN extraction |
|
||||
| **v1.3** | 2026-03 | Persistent config logs per tab, GenAI auto-fill from OCI credentials, inline UX feedback with loading spinners, MCP type-switch fix, encrypted key passphrase support, Docker stdin hang fix |
|
||||
| **v1.2** | 2026-03 | RAG pipeline (OCI GenAI embeddings + ADB vector search), dedicated Embeddings tab, CIS report chunking, file upload embedding |
|
||||
| **v1.1** | 2025-02 | OCI SDK GenAI (exact pattern), OCI Account Explorer, MCP↔ADB linking, full chat parameters |
|
||||
|
||||
240
backend/app.py
240
backend/app.py
@@ -45,87 +45,175 @@ app.add_middleware(CORSMiddleware, allow_origins=["*"], allow_credentials=True,
|
||||
security = HTTPBearer()
|
||||
|
||||
# ── OCI GenAI Models Catalog ──────────────────────────────────────────────────
|
||||
# OCIDs are region-specific; "ocids" maps genai_region → OCID.
|
||||
# _call_genai resolves the OCID for the configured region at runtime.
|
||||
GENAI_MODELS = {
|
||||
# ── Cohere ──
|
||||
"cohere.command-a-reasoning": {"provider":"cohere","name":"Cohere Command A Reasoning","api_format":"COHERE"},
|
||||
"cohere.command-a-vision": {"provider":"cohere","name":"Cohere Command A Vision","api_format":"COHERE"},
|
||||
"cohere.command-a-03-2025": {"provider":"cohere","name":"Cohere Command A","api_format":"COHERE"},
|
||||
"cohere.command-r-plus-08-2024": {"provider":"cohere","name":"Cohere Command R+ (08-2024)","api_format":"COHERE"},
|
||||
"cohere.command-r-08-2024": {"provider":"cohere","name":"Cohere Command R (08-2024)","api_format":"COHERE"},
|
||||
"cohere.command-a-reasoning": {"provider":"cohere","name":"Cohere Command A Reasoning","api_format":"COHERE",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyaw5ch2lw2va4t2c2e6ha6kecinfceiqq37runhqchqrkq"}},
|
||||
"cohere.command-a-vision": {"provider":"cohere","name":"Cohere Command A Vision","api_format":"COHERE",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyabvp5xteqir7mkcoivaxq6hohml4tqsrfg5bju2cbtrdq"}},
|
||||
"cohere.command-a-03-2025": {"provider":"cohere","name":"Cohere Command A","api_format":"COHERE",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyadgp4iov7qreizan5werpalu2ismyko4irc4bfya4nh6q"}},
|
||||
"cohere.command-r-plus-08-2024": {"provider":"cohere","name":"Cohere Command R+ (08-2024)","api_format":"COHERE",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceya7sjdzr3mm64jnkmnrgikwmkp3momtlknow4gwwe2whqa"}},
|
||||
"cohere.command-r-08-2024": {"provider":"cohere","name":"Cohere Command R (08-2024)","api_format":"COHERE",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyag5f2c6l4kbzh5nixbv5fvfsmcfm4bdzon3z3sdh7ztsa"}},
|
||||
# ── Meta ──
|
||||
"meta.llama-4-maverick-17b-128e-instruct-fp8": {"provider":"meta","name":"Meta Llama 4 Maverick","api_format":"GENERIC"},
|
||||
"meta.llama-4-scout-17b-16e-instruct": {"provider":"meta","name":"Meta Llama 4 Scout","api_format":"GENERIC"},
|
||||
"meta.llama-3.3-70b-instruct": {"provider":"meta","name":"Meta Llama 3.3 (70B)","api_format":"GENERIC"},
|
||||
"meta.llama-3.2-90b-vision-instruct": {"provider":"meta","name":"Meta Llama 3.2 90B Vision","api_format":"GENERIC"},
|
||||
"meta.llama-3.2-11b-vision-instruct": {"provider":"meta","name":"Meta Llama 3.2 11B Vision","api_format":"GENERIC"},
|
||||
"meta.llama-3.1-405b-instruct": {"provider":"meta","name":"Meta Llama 3.1 (405B)","api_format":"GENERIC"},
|
||||
"meta.llama-4-maverick-17b-128e-instruct-fp8": {"provider":"meta","name":"Meta Llama 4 Maverick","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyah6tjdejjashngznsylutuhhvufukzb2g2ls54g2flsfq"}},
|
||||
"meta.llama-4-scout-17b-16e-instruct": {"provider":"meta","name":"Meta Llama 4 Scout","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyaw23hfc7mtvv5wef3gwvvaguyzqmhb5lx4r5s3y2xzc4a"}},
|
||||
"meta.llama-guard-4-12b": {"provider":"meta","name":"Meta Llama Guard 4 (12B)","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyab5ggfxf4zs33lb5skxemyudnfxangjl4557toy3yapea"}},
|
||||
# ── Google ──
|
||||
"google.gemini-2.5-pro": {"provider":"google","name":"Google Gemini 2.5 Pro","api_format":"GENERIC"},
|
||||
"google.gemini-2.5-flash": {"provider":"google","name":"Google Gemini 2.5 Flash","api_format":"GENERIC"},
|
||||
"google.gemini-2.5-flash-lite": {"provider":"google","name":"Google Gemini 2.5 Flash-Lite","api_format":"GENERIC"},
|
||||
"google.gemini-2.5-pro": {"provider":"google","name":"Google Gemini 2.5 Pro","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyargceyuaysrjzo2metq2rinavayxqmpu7tkm6mmfojcvq"}},
|
||||
"google.gemini-2.5-flash": {"provider":"google","name":"Google Gemini 2.5 Flash","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyaeo4ehrn25guuats5s45hnvswlhxo6riop275l2bkr2vq"}},
|
||||
"google.gemini-2.5-flash-lite": {"provider":"google","name":"Google Gemini 2.5 Flash-Lite","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyaqk3p6ljepyguyo4ff5dwjw3ecij3x4l2j32e3gz66wtq"}},
|
||||
# ── OpenAI ──
|
||||
"openai.gpt-5.2-pro": {"provider":"openai","name":"OpenAI GPT-5.2 Pro","api_format":"GENERIC"},
|
||||
"openai.gpt-5.2": {"provider":"openai","name":"OpenAI GPT-5.2","api_format":"GENERIC"},
|
||||
"openai.gpt-5.2-2025-12-11": {"provider":"openai","name":"OpenAI GPT-5.2 (2025-12-11)","api_format":"GENERIC"},
|
||||
"openai.gpt-5.2-chat-latest": {"provider":"openai","name":"OpenAI GPT-5.2 Chat Latest","api_format":"GENERIC"},
|
||||
"openai.gpt-5.2-pro-2025-12-11": {"provider":"openai","name":"OpenAI GPT-5.2 Pro (2025-12-11)","api_format":"GENERIC"},
|
||||
"openai.gpt-5.1": {"provider":"openai","name":"OpenAI GPT-5.1","api_format":"GENERIC"},
|
||||
"openai.gpt-5.1-2025-11-13": {"provider":"openai","name":"OpenAI GPT-5.1 (2025-11-13)","api_format":"GENERIC"},
|
||||
"openai.gpt-5.1-chat-latest": {"provider":"openai","name":"OpenAI GPT-5.1 Chat Latest","api_format":"GENERIC"},
|
||||
"openai.gpt-5": {"provider":"openai","name":"OpenAI GPT-5","api_format":"GENERIC"},
|
||||
"openai.gpt-5-2025-08-07": {"provider":"openai","name":"OpenAI GPT-5 (2025-08-07)","api_format":"GENERIC"},
|
||||
"openai.gpt-5-mini": {"provider":"openai","name":"OpenAI GPT-5 Mini","api_format":"GENERIC"},
|
||||
"openai.gpt-5-mini-2025-08-07": {"provider":"openai","name":"OpenAI GPT-5 Mini (2025-08-07)","api_format":"GENERIC"},
|
||||
"openai.gpt-5-nano": {"provider":"openai","name":"OpenAI GPT-5 Nano","api_format":"GENERIC"},
|
||||
"openai.gpt-5-nano-2025-08-07": {"provider":"openai","name":"OpenAI GPT-5 Nano (2025-08-07)","api_format":"GENERIC"},
|
||||
"openai.gpt-4.1": {"provider":"openai","name":"OpenAI GPT-4.1","api_format":"GENERIC"},
|
||||
"openai.gpt-4.1-2025-04-14": {"provider":"openai","name":"OpenAI GPT-4.1 (2025-04-14)","api_format":"GENERIC"},
|
||||
"openai.gpt-4.1-mini": {"provider":"openai","name":"OpenAI GPT-4.1 Mini","api_format":"GENERIC"},
|
||||
"openai.gpt-4.1-mini-2025-04-14": {"provider":"openai","name":"OpenAI GPT-4.1 Mini (2025-04-14)","api_format":"GENERIC"},
|
||||
"openai.gpt-4.1-nano": {"provider":"openai","name":"OpenAI GPT-4.1 Nano","api_format":"GENERIC"},
|
||||
"openai.gpt-4.1-nano-2025-04-14": {"provider":"openai","name":"OpenAI GPT-4.1 Nano (2025-04-14)","api_format":"GENERIC"},
|
||||
"openai.gpt-4o": {"provider":"openai","name":"OpenAI GPT-4o","api_format":"GENERIC"},
|
||||
"openai.gpt-4o-2024-08-06": {"provider":"openai","name":"OpenAI GPT-4o (2024-08-06)","api_format":"GENERIC"},
|
||||
"openai.gpt-4o-2024-11-20": {"provider":"openai","name":"OpenAI GPT-4o (2024-11-20)","api_format":"GENERIC"},
|
||||
"openai.gpt-4o-mini": {"provider":"openai","name":"OpenAI GPT-4o Mini","api_format":"GENERIC"},
|
||||
"openai.gpt-4o-mini-search-preview": {"provider":"openai","name":"OpenAI GPT-4o Mini Search Preview","api_format":"GENERIC"},
|
||||
"openai.gpt-4o-mini-search-preview-2025-03-11": {"provider":"openai","name":"OpenAI GPT-4o Mini Search (2025-03-11)","api_format":"GENERIC"},
|
||||
"openai.gpt-4o-search-preview": {"provider":"openai","name":"OpenAI GPT-4o Search Preview","api_format":"GENERIC"},
|
||||
"openai.gpt-4o-search-preview-2025-03-11": {"provider":"openai","name":"OpenAI GPT-4o Search (2025-03-11)","api_format":"GENERIC"},
|
||||
"openai.gpt-audio": {"provider":"openai","name":"OpenAI GPT Audio","api_format":"GENERIC"},
|
||||
"openai.o4-mini": {"provider":"openai","name":"OpenAI o4-mini","api_format":"GENERIC"},
|
||||
"openai.o4-mini-2025-04-16": {"provider":"openai","name":"OpenAI o4-mini (2025-04-16)","api_format":"GENERIC"},
|
||||
"openai.o3": {"provider":"openai","name":"OpenAI o3","api_format":"GENERIC"},
|
||||
"openai.o3-2025-04-16": {"provider":"openai","name":"OpenAI o3 (2025-04-16)","api_format":"GENERIC"},
|
||||
"openai.o3-mini": {"provider":"openai","name":"OpenAI o3-mini","api_format":"GENERIC"},
|
||||
"openai.o3-mini-2025-01-31": {"provider":"openai","name":"OpenAI o3-mini (2025-01-31)","api_format":"GENERIC"},
|
||||
"openai.o1": {"provider":"openai","name":"OpenAI o1","api_format":"GENERIC"},
|
||||
"openai.o1-2024-12-17": {"provider":"openai","name":"OpenAI o1 (2024-12-17)","api_format":"GENERIC"},
|
||||
"openai.gpt-oss-120b": {"provider":"openai","name":"OpenAI GPT-oss (120B)","api_format":"GENERIC"},
|
||||
"openai.gpt-oss-20b": {"provider":"openai","name":"OpenAI GPT-oss (20B)","api_format":"GENERIC"},
|
||||
"openai.gpt-5.3-codex": {"provider":"openai","name":"OpenAI GPT-5.3 Codex","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyayatqadc4zh74l6mh7sb3sb5olk7jnhq62bfnxgjwfb5a"}},
|
||||
"openai.gpt-5.2-codex": {"provider":"openai","name":"OpenAI GPT-5.2 Codex","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyarqt3ngs42jvevvgunlvkb2ksxlnotqymbm4duy3phy4q"}},
|
||||
"openai.gpt-5.2-pro": {"provider":"openai","name":"OpenAI GPT-5.2 Pro","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyaw6eprz3l3db3w3y5udndb6fjairuepn5chunmmgwueba"}},
|
||||
"openai.gpt-5.2-pro-2025-12-11": {"provider":"openai","name":"OpenAI GPT-5.2 Pro (2025-12-11)","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceya5s4tallv2x5rh7l2zc4kaxsbkihcnhd2w6lqf3a7ty2a"}},
|
||||
"openai.gpt-5.2": {"provider":"openai","name":"OpenAI GPT-5.2","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceya4fw3p5fddnexbfcurnz7spgkqb4mq4a6y5ubyv7777sa"}},
|
||||
"openai.gpt-5.2-2025-12-11": {"provider":"openai","name":"OpenAI GPT-5.2 (2025-12-11)","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyawclpjz3ar2psi2vjqk3zwzesnq2u6uli37djpdn2zaha"}},
|
||||
"openai.gpt-5.2-chat-latest": {"provider":"openai","name":"OpenAI GPT-5.2 Chat Latest","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyafvkojauwkg3b6nps2rogu5lmigedrkel65j6qtk7l2uq"}},
|
||||
"openai.gpt-5.1-codex-max": {"provider":"openai","name":"OpenAI GPT-5.1 Codex Max","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyaqy3hrasco26ocvumkr5canmnzkvkhgoyw6ntyvyeamrq"}},
|
||||
"openai.gpt-5.1-codex": {"provider":"openai","name":"OpenAI GPT-5.1 Codex","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyar76rnxb66b4bkhlpn62jdffjedmeijbbh3h3v4e6xrxa"}},
|
||||
"openai.gpt-5.1-codex-mini": {"provider":"openai","name":"OpenAI GPT-5.1 Codex Mini","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyashim6rmq4irtdxw5osv4flw6ueggq5sppyzmv3qw7tha"}},
|
||||
"openai.gpt-5.1": {"provider":"openai","name":"OpenAI GPT-5.1","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceya3darth2ozqcfssb2bats5jitpgigllccajasdyqljnkq"}},
|
||||
"openai.gpt-5.1-2025-11-13": {"provider":"openai","name":"OpenAI GPT-5.1 (2025-11-13)","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceya5xtecezkpnkloj5wsmgtpbz7y4n7dsryanaj3l3npk5q"}},
|
||||
"openai.gpt-5.1-chat-latest": {"provider":"openai","name":"OpenAI GPT-5.1 Chat Latest","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyavtwm6mlbmpmkkvejoprbt5cpflx2bq66lgy6yr2hxsba"}},
|
||||
"openai.gpt-5-codex": {"provider":"openai","name":"OpenAI GPT-5 Codex","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyasddbvtsh44glecj4bbyghxdbjabmvb76pvrkjefeqgpa"}},
|
||||
"openai.gpt-5": {"provider":"openai","name":"OpenAI GPT-5","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyathaswupt2vqykuxzinzbu776zpydos343fokoddyywma"}},
|
||||
"openai.gpt-5-2025-08-07": {"provider":"openai","name":"OpenAI GPT-5 (2025-08-07)","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyahr5xoj3itcnd2ppl45w3isil2brd4obx2x2qslckfxsq"}},
|
||||
"openai.gpt-5-mini": {"provider":"openai","name":"OpenAI GPT-5 Mini","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceya3eain4n6v3edm4ryjvze5hnjouujd4vralxntfalwjaq"}},
|
||||
"openai.gpt-5-mini-2025-08-07": {"provider":"openai","name":"OpenAI GPT-5 Mini (2025-08-07)","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyakzv5rbuziucahmfkbrvnrzwepgfzuyio4fq4goueda2a"}},
|
||||
"openai.gpt-5-nano": {"provider":"openai","name":"OpenAI GPT-5 Nano","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyactz4ikvxbjchjlkdw4jtyftsopfwk6prltzarznudqxq"}},
|
||||
"openai.gpt-5-nano-2025-08-07": {"provider":"openai","name":"OpenAI GPT-5 Nano (2025-08-07)","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyafyjacj4tcfrcvxpte4j5v5dhzrxs4ir7cz3hu3ztatlq"}},
|
||||
"openai.gpt-4.1": {"provider":"openai","name":"OpenAI GPT-4.1","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyaa6g75r2qqmtzjaooqtlxv4lxkpcqp2jdd6plpq7yq7ea"}},
|
||||
"openai.gpt-4.1-2025-04-14": {"provider":"openai","name":"OpenAI GPT-4.1 (2025-04-14)","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyaba4ewqm32w7nsbal4od2unrtvhr6qybzfra5y2q7yhra"}},
|
||||
"openai.gpt-4.1-mini": {"provider":"openai","name":"OpenAI GPT-4.1 Mini","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceya6pk3sxishpiexm2rb5sf4ytb5tsbz4to2g3g23smidaa"}},
|
||||
"openai.gpt-4.1-mini-2025-04-14": {"provider":"openai","name":"OpenAI GPT-4.1 Mini (2025-04-14)","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyageakxq5b2haozdcjwalu6sdxsswsw3gsx4hxqaerpqvq"}},
|
||||
"openai.gpt-4.1-nano": {"provider":"openai","name":"OpenAI GPT-4.1 Nano","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyacxqiaijwxalbynhst6oyg4wttzagz3dai4y2rnwh6wrq"}},
|
||||
"openai.gpt-4.1-nano-2025-04-14": {"provider":"openai","name":"OpenAI GPT-4.1 Nano (2025-04-14)","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyaa3ubnmts4tfcwslpvuiuj74qdkyyfpb7vxo334nzzfoa"}},
|
||||
"openai.gpt-4o": {"provider":"openai","name":"OpenAI GPT-4o","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyah7slrtboxdbfdy5cdspsfts62yumoclpdgwydopse7za"}},
|
||||
"openai.gpt-4o-2024-08-06": {"provider":"openai","name":"OpenAI GPT-4o (2024-08-06)","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyahw7ffo4apa3z5nrlfn3hjglirdasqn7ydwbe6o66tela"}},
|
||||
"openai.gpt-4o-2024-11-20": {"provider":"openai","name":"OpenAI GPT-4o (2024-11-20)","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyagxncxsf5vkooaj2pcrgcgjrxhexifnp2bghtnjstssga"}},
|
||||
"openai.gpt-4o-mini": {"provider":"openai","name":"OpenAI GPT-4o Mini","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceya5jba2auifbnsmrfjqmigut4aq6gei4kxyfqmwsyjo54a"}},
|
||||
"openai.gpt-4o-mini-search-preview": {"provider":"openai","name":"OpenAI GPT-4o Mini Search Preview","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyauin4xlovatfjhxp67e3pxfmjp26sxide2yobsnxn5xyq"}},
|
||||
"openai.gpt-4o-mini-search-preview-2025-03-11": {"provider":"openai","name":"OpenAI GPT-4o Mini Search (2025-03-11)","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyabx7ppfcp5uyt2gmfc6mrfy74lnzenayxiyfpbvo5b7ka"}},
|
||||
"openai.gpt-4o-search-preview": {"provider":"openai","name":"OpenAI GPT-4o Search Preview","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyar2iwiwsqlrrdw5wmppchuz56nmkrp2soyohx3boc37mq"}},
|
||||
"openai.gpt-4o-search-preview-2025-03-11": {"provider":"openai","name":"OpenAI GPT-4o Search (2025-03-11)","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceya7huzy6zziboyhuwfqmbhsjrz57xat5hclnjnqrnan7ha"}},
|
||||
"openai.gpt-image-1.5": {"provider":"openai","name":"OpenAI GPT Image 1.5","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyauvxywwfyxnqouoltmp2oe5srzspxnnflmxpkznbwgaea"}},
|
||||
"openai.gpt-image-1": {"provider":"openai","name":"OpenAI GPT Image 1","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyaykmvlptihcu4iumplkemkp3u3mcw7atypidcpfpminoq"}},
|
||||
"openai.gpt-audio": {"provider":"openai","name":"OpenAI GPT Audio","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyabnxjhfcolefqhio7twnnqvkxbkphpy6f5h2mo4xqkdvq"}},
|
||||
"openai.o4-mini": {"provider":"openai","name":"OpenAI o4-mini","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceya5ivfqp4fxlajoeg2cahlqtuuswagiv6a7dggpigy23bq"}},
|
||||
"openai.o4-mini-2025-04-16": {"provider":"openai","name":"OpenAI o4-mini (2025-04-16)","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyatheqm7c6zhrtgwccbwyopoi5dzrzrclw7kx5igfrqniq"}},
|
||||
"openai.o3": {"provider":"openai","name":"OpenAI o3","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyalgnrukpjk6wm5zsf4jzkoneahgswhrk7kukkoagwnzma"}},
|
||||
"openai.o3-2025-04-16": {"provider":"openai","name":"OpenAI o3 (2025-04-16)","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyah6nkmpmrgb67u4zuxs77uc3kg3vsgmfdig5zznbtcqoq"}},
|
||||
"openai.o3-mini": {"provider":"openai","name":"OpenAI o3-mini","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyayrbuyw3robmloay76lh7j2l3mk65aoy64mhcgmwzn5yq"}},
|
||||
"openai.o3-mini-2025-01-31": {"provider":"openai","name":"OpenAI o3-mini (2025-01-31)","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyaeo3yslwf6uhxvfhbop7ukixto35432w7vir53mvw2vza"}},
|
||||
"openai.o1": {"provider":"openai","name":"OpenAI o1","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceya674efirmykrx77pde5ftnuihvpn45vyhn2ecj6dnl5ca"}},
|
||||
"openai.o1-2024-12-17": {"provider":"openai","name":"OpenAI o1 (2024-12-17)","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyarak5fe624z3kudi7p4svnlif7bgg5gpoqcxcyeoajjcq"}},
|
||||
"openai.gpt-oss-120b": {"provider":"openai","name":"OpenAI GPT-oss (120B)","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyachl5cngrvo4tna3bj3yqqtfvgtjarbgidmy76z7ojy6a"}},
|
||||
"openai.gpt-oss-20b": {"provider":"openai","name":"OpenAI GPT-oss (20B)","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyaillcx47jg3axfefkaruzmcvmse66t4nmoxuwpaqbf4kq"}},
|
||||
# ── xAI ──
|
||||
"xai.grok-4": {"provider":"xai","name":"xAI Grok 4","api_format":"GENERIC"},
|
||||
"xai.grok-4-1-fast-reasoning": {"provider":"xai","name":"xAI Grok 4.1 Fast Reasoning","api_format":"GENERIC"},
|
||||
"xai.grok-4-1-fast-non-reasoning": {"provider":"xai","name":"xAI Grok 4.1 Fast Non-Reasoning","api_format":"GENERIC"},
|
||||
"xai.grok-4-fast-reasoning": {"provider":"xai","name":"xAI Grok 4 Fast Reasoning","api_format":"GENERIC"},
|
||||
"xai.grok-4-fast-non-reasoning": {"provider":"xai","name":"xAI Grok 4 Fast Non-Reasoning","api_format":"GENERIC"},
|
||||
"xai.grok-3": {"provider":"xai","name":"xAI Grok 3","api_format":"GENERIC"},
|
||||
"xai.grok-3-mini": {"provider":"xai","name":"xAI Grok 3 Mini","api_format":"GENERIC"},
|
||||
"xai.grok-3-fast": {"provider":"xai","name":"xAI Grok 3 Fast","api_format":"GENERIC"},
|
||||
"xai.grok-3-mini-fast": {"provider":"xai","name":"xAI Grok 3 Mini Fast","api_format":"GENERIC"},
|
||||
"xai.grok-code-fast-1": {"provider":"xai","name":"xAI Grok Code Fast 1","api_format":"GENERIC"},
|
||||
"xai.grok-4": {"provider":"xai","name":"xAI Grok 4","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyaldmhg25is4nouena4oa2pj4nvwgfeempo4syiaazukia"}},
|
||||
"xai.grok-4-1-fast-reasoning": {"provider":"xai","name":"xAI Grok 4.1 Fast Reasoning","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyaocp3cooe7jkje7irb7dsrspgobjtkxakutz76gjo3k3a"}},
|
||||
"xai.grok-4-1-fast-non-reasoning": {"provider":"xai","name":"xAI Grok 4.1 Fast Non-Reasoning","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyaklmfkhxw5lwo5ifhqo2dxu5ymbeyzdr4nnpv3paigsoq"}},
|
||||
"xai.grok-4-fast-reasoning": {"provider":"xai","name":"xAI Grok 4 Fast Reasoning","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyamqkpviarwzvo3wwuhnhqloa224fneaukac5megifuaba"}},
|
||||
"xai.grok-4-fast-non-reasoning": {"provider":"xai","name":"xAI Grok 4 Fast Non-Reasoning","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyaj2m67qex5dzgi7gi5blfdztnvbwggvibaxi6ac3jthha"}},
|
||||
"xai.grok-3": {"provider":"xai","name":"xAI Grok 3","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyag3w2xk76vlahjujj2gdfeuzhflt25gbo3bxidlsqfjla"}},
|
||||
"xai.grok-3-mini": {"provider":"xai","name":"xAI Grok 3 Mini","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyar77g5dtex3loxuluziukznryr7kowvncea33ml7vrlda"}},
|
||||
"xai.grok-3-fast": {"provider":"xai","name":"xAI Grok 3 Fast","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyazdu5a5ruzfds34kwb2zwc65p6fes5uwddmkq7dyisvxq"}},
|
||||
"xai.grok-3-mini-fast": {"provider":"xai","name":"xAI Grok 3 Mini Fast","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyauvjoll2repj5pbtkk7pinwj57ex3lkehzpxd6v6rxscq"}},
|
||||
"xai.grok-code-fast-1": {"provider":"xai","name":"xAI Grok Code Fast 1","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyaayp5ccahfbpht56x7meyc26gyvojowmrbrr4xj626enq"}},
|
||||
# ── ProtectAI ──
|
||||
"protectai.deberta-v3-base-prompt-injection-v2": {"provider":"protectai","name":"ProtectAI DeBERTa Prompt Injection v2","api_format":"GENERIC",
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyasj4kxlosqvmyaxu53lrc7iddmo2owc6bizoa2y5w47oq"}},
|
||||
}
|
||||
|
||||
EMBEDDING_MODELS = {
|
||||
"cohere.embed-v4.0": {"name":"Cohere Embed v4.0 (Multimodal)","dims":1536},
|
||||
"cohere.embed-v4.0": {"name":"Cohere Embed v4.0 (Multimodal)","dims":1536,
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyahw4vlsxm7newcqtlgmristnwxlrxox3h7bcnlomjpgwa"}},
|
||||
"openai.text-embedding-3-large": {"name":"OpenAI Text Embedding 3 Large","dims":3072,
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceya3i6o2p5h2mij6unya5bsyc46aqey5hwy3icncawo3vcq"}},
|
||||
"openai.text-embedding-3-small": {"name":"OpenAI Text Embedding 3 Small","dims":1536,
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyarjpjyniixp4tf7kyhr5bfajxmky4sjmbki2hp55ns2pq"}},
|
||||
"cohere.embed-english-v3.0": {"name":"Cohere Embed English v3.0","dims":1024},
|
||||
"cohere.embed-multilingual-v3.0": {"name":"Cohere Embed Multilingual v3.0","dims":1024},
|
||||
"cohere.embed-multilingual-v3.0": {"name":"Cohere Embed Multilingual v3.0","dims":1024,
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyaf4ga422xmco2gqbwaks7chwt24y6qtofhwwfrpxjxpxa"}},
|
||||
"cohere.embed-english-light-v3.0": {"name":"Cohere Embed English Light v3.0","dims":384},
|
||||
"cohere.embed-multilingual-light-v3.0": {"name":"Cohere Embed Multilingual Light v3.0","dims":384},
|
||||
"cohere.embed-english-image-v3.0": {"name":"Cohere Embed English Image v3.0","dims":1024},
|
||||
"cohere.embed-multilingual-image-v3.0": {"name":"Cohere Embed Multilingual Image v3.0","dims":1024},
|
||||
"cohere.embed-english-light-image-v3.0": {"name":"Cohere Embed English Light Image v3.0","dims":384},
|
||||
"cohere.embed-multilingual-light-image-v3.0": {"name":"Cohere Embed Multilingual Light Image v3.0","dims":384},
|
||||
"cohere.embed-english-image-v3.0": {"name":"Cohere Embed English Image v3.0","dims":1024,
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyaukpmlzyv2y3rb2sqdw4ldqsysxqula3wfnhadnj77drq"}},
|
||||
"cohere.embed-multilingual-image-v3.0": {"name":"Cohere Embed Multilingual Image v3.0","dims":1024,
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyazeracodio7mgnoq76vk26jdvdt7x7pa4amy3s6yomplq"}},
|
||||
"cohere.embed-english-light-image-v3.0": {"name":"Cohere Embed English Light Image v3.0","dims":384,
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceya56ycvdjfdwciqcgpzinzz72jre65z57rgyo4bvq7h55a"}},
|
||||
"cohere.embed-multilingual-light-image-v3.0": {"name":"Cohere Embed Multilingual Light Image v3.0","dims":384,
|
||||
"ocids":{"us-ashburn-1":"ocid1.generativeaimodel.oc1.iad.amaaaaaask7dceyanjovpmwmspjzwharl4tebjamhffc5brdqhvyvboarpyq"}},
|
||||
}
|
||||
|
||||
GENAI_REGIONS = [
|
||||
@@ -810,8 +898,12 @@ def _call_genai(gc: dict, message: str, history: list = None) -> str:
|
||||
|
||||
chat_request.messages = messages
|
||||
|
||||
# Serving mode - supports model_id or model_ocid
|
||||
model_ref = gc.get("model_ocid") or gc["model_id"]
|
||||
# Serving mode - resolve OCID: explicit model_ocid > catalog ocid for region > short model_id
|
||||
model_ref = gc.get("model_ocid") or ""
|
||||
if not model_ref:
|
||||
region = gc.get("genai_region", "")
|
||||
ocids = model_info.get("ocids", {})
|
||||
model_ref = ocids.get(region) or gc["model_id"]
|
||||
if gc.get("serving_type") == "DEDICATED" and gc.get("dedicated_endpoint_id"):
|
||||
chat_detail.serving_mode = oci.generative_ai_inference.models.DedicatedServingMode(
|
||||
endpoint_id=gc["dedicated_endpoint_id"]
|
||||
@@ -902,7 +994,11 @@ def _embed_text(text: str, genai_cfg: dict, embedding_model_id: str) -> list:
|
||||
)
|
||||
embed_detail = oci.generative_ai_inference.models.EmbedTextDetails()
|
||||
embed_detail.inputs = [text]
|
||||
embed_detail.serving_mode = oci.generative_ai_inference.models.OnDemandServingMode(model_id=embedding_model_id)
|
||||
# Resolve OCID for embedding model by region
|
||||
emb_info = EMBEDDING_MODELS.get(embedding_model_id, {})
|
||||
region = genai_cfg.get("genai_region", "")
|
||||
emb_ref = emb_info.get("ocids", {}).get(region) or embedding_model_id
|
||||
embed_detail.serving_mode = oci.generative_ai_inference.models.OnDemandServingMode(model_id=emb_ref)
|
||||
embed_detail.compartment_id = genai_cfg["compartment_id"]
|
||||
embed_detail.truncate = "NONE"
|
||||
embed_detail.input_type = "SEARCH_QUERY"
|
||||
|
||||
Reference in New Issue
Block a user