Skip to main content

rig_core/providers/
moonshot.rs

1//! Moonshot AI (Kimi) endpoints and model identifiers.
2//!
3//! [`from_env`] and [`new`] build a client on the
4//! [`MOONSHOT`](crate::providers::openai::wire::MOONSHOT) dialect, the module's
5//! primary one; [`anthropic_from_env`] and [`anthropic_new`] build a
6//! Messages-format client. Environment configuration reads `MOONSHOT_API_KEY`.
7//!
8//! ```no_run
9//! use rig_core::providers::moonshot;
10//!
11//! # fn run() -> Result<(), Box<dyn std::error::Error>> {
12//! let kimi = moonshot::from_env()?.chat(moonshot::KIMI_K3);
13//! # let _ = kimi;
14//! # Ok(())
15//! # }
16//! ```
17
18/// Global OpenAI-compatible base URL.
19pub const GLOBAL_API_BASE_URL: &str = "https://api.moonshot.ai/v1";
20/// China OpenAI-compatible base URL.
21pub const CHINA_API_BASE_URL: &str = "https://api.moonshot.cn/v1";
22/// Anthropic-compatible base URL.
23pub const ANTHROPIC_API_BASE_URL: &str = "https://api.moonshot.ai/anthropic";
24/// China Anthropic-compatible base URL.
25pub const CHINA_ANTHROPIC_API_BASE_URL: &str = "https://api.moonshot.cn/anthropic";
26
27/// Identifier for the Kimi K3 model.
28pub const KIMI_K3: &str = "kimi-k3";
29
30/// Identifier for the Kimi K2.7 Code model.
31pub const KIMI_K2_7_CODE: &str = "kimi-k2.7-code";
32
33/// Identifier for the high-speed Kimi K2.7 Code model.
34pub const KIMI_K2_7_CODE_HIGHSPEED: &str = "kimi-k2.7-code-highspeed";
35
36/// Identifier for the Kimi K2.6 model.
37pub const KIMI_K2_6: &str = "kimi-k2.6";
38
39crate::client::macros::openai_vendor!(crate::providers::openai::wire::MOONSHOT, "Moonshot");
40crate::client::macros::anthropic_vendor!(
41    crate::providers::anthropic::wire::MOONSHOT,
42    "Moonshot",
43    anthropic_from_env,
44    anthropic_new
45);