Skip to content

Commit ee357e8

Browse files
authored
language_models: Send a header indicating that the client supports xAI models (#38931)
This PR adds an `x-zed-client-supports-x-ai` header to the `GET /models` request sent to Cloud to indicate that the client supports xAI models. Release Notes: - N/A
1 parent 0891a71 commit ee357e8

File tree

2 files changed

+10
-6
lines changed

2 files changed

+10
-6
lines changed

crates/cloud_llm_client/src/cloud_llm_client.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,9 @@ pub const CLIENT_SUPPORTS_STATUS_MESSAGES_HEADER_NAME: &str =
5555
pub const SERVER_SUPPORTS_STATUS_MESSAGES_HEADER_NAME: &str =
5656
"x-zed-server-supports-status-messages";
5757

58+
/// The name of the header used by the client to indicate that it supports receiving xAI models.
59+
pub const CLIENT_SUPPORTS_X_AI_HEADER_NAME: &str = "x-zed-client-supports-x-ai";
60+
5861
#[derive(Debug, PartialEq, Clone, Copy, Serialize, Deserialize)]
5962
#[serde(rename_all = "snake_case")]
6063
pub enum UsageLimit {

crates/language_models/src/provider/cloud.rs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@ use anyhow::{Context as _, Result, anyhow};
44
use chrono::{DateTime, Utc};
55
use client::{Client, ModelRequestUsage, UserStore, zed_urls};
66
use cloud_llm_client::{
7-
CLIENT_SUPPORTS_STATUS_MESSAGES_HEADER_NAME, CURRENT_PLAN_HEADER_NAME, CompletionBody,
8-
CompletionEvent, CompletionRequestStatus, CountTokensBody, CountTokensResponse,
9-
EXPIRED_LLM_TOKEN_HEADER_NAME, ListModelsResponse, MODEL_REQUESTS_RESOURCE_HEADER_VALUE, Plan,
10-
PlanV1, PlanV2, SERVER_SUPPORTS_STATUS_MESSAGES_HEADER_NAME,
11-
SUBSCRIPTION_LIMIT_RESOURCE_HEADER_NAME, TOOL_USE_LIMIT_REACHED_HEADER_NAME,
12-
ZED_VERSION_HEADER_NAME,
7+
CLIENT_SUPPORTS_STATUS_MESSAGES_HEADER_NAME, CLIENT_SUPPORTS_X_AI_HEADER_NAME,
8+
CURRENT_PLAN_HEADER_NAME, CompletionBody, CompletionEvent, CompletionRequestStatus,
9+
CountTokensBody, CountTokensResponse, EXPIRED_LLM_TOKEN_HEADER_NAME, ListModelsResponse,
10+
MODEL_REQUESTS_RESOURCE_HEADER_VALUE, Plan, PlanV1, PlanV2,
11+
SERVER_SUPPORTS_STATUS_MESSAGES_HEADER_NAME, SUBSCRIPTION_LIMIT_RESOURCE_HEADER_NAME,
12+
TOOL_USE_LIMIT_REACHED_HEADER_NAME, ZED_VERSION_HEADER_NAME,
1313
};
1414
use futures::{
1515
AsyncBufReadExt, FutureExt, Stream, StreamExt, future::BoxFuture, stream::BoxStream,
@@ -217,6 +217,7 @@ impl State {
217217

218218
let request = http_client::Request::builder()
219219
.method(Method::GET)
220+
.header(CLIENT_SUPPORTS_X_AI_HEADER_NAME, "true")
220221
.uri(http_client.build_zed_llm_url("/models", &[])?.as_ref())
221222
.header("Authorization", format!("Bearer {token}"))
222223
.body(AsyncBody::empty())?;

0 commit comments

Comments
 (0)