feat: add Astrai as a named provider (#486)
Add Astrai (https://as-trai.com) as a first-class OpenAI-compatible provider. Astrai is an AI inference router with built-in cost optimization, PII stripping, and compliance logging. - Register ASTRAI_API_KEY env var in resolve_api_key - Add "astrai" entry in provider factory → as-trai.com/v1 - Add factory_astrai unit test - Add Astrai to compatible provider test list - Update README provider count (22+ → 23+) and list Co-authored-by: Maya Walcher <maya.walcher@gmail.com> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
d7c1fd7bf8
commit
8ad5b6146b
3 changed files with 16 additions and 2 deletions
|
|
@ -894,6 +894,7 @@ mod tests {
|
|||
make_provider("Groq", "https://api.groq.com/openai", None),
|
||||
make_provider("Mistral", "https://api.mistral.ai", None),
|
||||
make_provider("xAI", "https://api.x.ai", None),
|
||||
make_provider("Astrai", "https://as-trai.com/v1", None),
|
||||
];
|
||||
|
||||
for p in providers {
|
||||
|
|
|
|||
|
|
@ -138,6 +138,7 @@ fn resolve_provider_credential(name: &str, credential_override: Option<&str>) ->
|
|||
"opencode" | "opencode-zen" => vec!["OPENCODE_API_KEY"],
|
||||
"vercel" | "vercel-ai" => vec!["VERCEL_API_KEY"],
|
||||
"cloudflare" | "cloudflare-ai" => vec!["CLOUDFLARE_API_KEY"],
|
||||
"astrai" => vec!["ASTRAI_API_KEY"],
|
||||
_ => vec![],
|
||||
};
|
||||
|
||||
|
|
@ -313,6 +314,11 @@ pub fn create_provider_with_url(
|
|||
),
|
||||
)),
|
||||
|
||||
// ── AI inference routers ─────────────────────────────
|
||||
"astrai" => Ok(Box::new(OpenAiCompatibleProvider::new(
|
||||
"Astrai", "https://as-trai.com/v1", key, AuthStyle::Bearer,
|
||||
))),
|
||||
|
||||
// ── Bring Your Own Provider (custom URL) ───────────
|
||||
// Format: "custom:https://your-api.com" or "custom:http://localhost:1234"
|
||||
name if name.starts_with("custom:") => {
|
||||
|
|
@ -651,6 +657,13 @@ mod tests {
|
|||
assert!(create_provider("build.nvidia.com", Some("nvapi-test")).is_ok());
|
||||
}
|
||||
|
||||
// ── AI inference routers ─────────────────────────────────
|
||||
|
||||
#[test]
|
||||
fn factory_astrai() {
|
||||
assert!(create_provider("astrai", Some("sk-astrai-test")).is_ok());
|
||||
}
|
||||
|
||||
// ── Custom / BYOP provider ─────────────────────────────
|
||||
|
||||
#[test]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue