ep: Generate request IDs on the client (#56386)
This change lays the groundwork for canceling in-flight requests. Without it, we always wait for a request to complete, even when we already know its result won't be used. Release Notes: - N/A
This commit is contained in:
1 parent
13cfeaa922
commit
f1f99331a4
2 files changed
+6
-3
No files matched your search
@@ -5,6 +5,7 @@ use std::ops::Range;
|
||||
use strum::{AsRefStr, EnumString};
|
||||
|
||||
pub const PREDICT_EDITS_MODE_HEADER_NAME: &str = "X-Zed-Predict-Edits-Mode";
|
||||
pub const PREDICT_EDITS_REQUEST_ID_HEADER_NAME: &str = "X-Zed-Predict-Edits-Request-Id";
|
||||
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, AsRefStr, EnumString)]
|
||||
#[serde(rename_all = "snake_case")]
|
||||
|
||||
@@ -3,8 +3,8 @@ use client::{Client, EditPredictionUsage, NeedsLlmTokenRefresh, UserStore, globa
|
||||
use cloud_api_client::LlmApiToken;
|
||||
use cloud_api_types::{OrganizationId, SubmitEditPredictionFeedbackBody};
|
||||
use cloud_llm_client::predict_edits_v3::{
|
||||
PREDICT_EDITS_MODE_HEADER_NAME, PredictEditsMode, PredictEditsV3Request,
|
||||
PredictEditsV3Response, RawCompletionRequest, RawCompletionResponse,
|
||||
PREDICT_EDITS_MODE_HEADER_NAME, PREDICT_EDITS_REQUEST_ID_HEADER_NAME, PredictEditsMode,
|
||||
PredictEditsV3Request, PredictEditsV3Response, RawCompletionRequest, RawCompletionResponse,
|
||||
};
|
||||
use cloud_llm_client::{
|
||||
EditPredictionRejectReason, EditPredictionRejection,
|
||||
@@ -2601,6 +2601,7 @@ impl EditPredictionStore {
|
||||
.build_zed_llm_url("/predict_edits/v3", &[])?;
|
||||
|
||||
let request = PredictEditsV3Request { input, trigger };
|
||||
let request_id = uuid::Uuid::new_v4().to_string();
|
||||
|
||||
let json_bytes = serde_json::to_vec(&request)?;
|
||||
let compressed = zstd::encode_all(&json_bytes[..], 3)?;
|
||||
@@ -2610,7 +2611,8 @@ impl EditPredictionStore {
|
||||
let builder = builder
|
||||
.uri(url.as_ref())
|
||||
.header("Content-Encoding", "zstd")
|
||||
.header(PREDICT_EDITS_MODE_HEADER_NAME, mode.as_ref());
|
||||
.header(PREDICT_EDITS_MODE_HEADER_NAME, mode.as_ref())
|
||||
.header(PREDICT_EDITS_REQUEST_ID_HEADER_NAME, request_id.as_str());
|
||||
let builder = if let Some(preferred_experiment) = preferred_experiment.as_deref() {
|
||||
builder.header(PREFERRED_EXPERIMENT_HEADER_NAME, preferred_experiment)
|
||||
} else {
|
||||
|
||||
Reference in new issue
Block a user