Reuse conversation cache when streaming edits (#30245)
Release Notes: - Improved latency when the agent applies edits.
This commit is contained in:
parent
032022e37b
commit
9f6809a28d
50 changed files with 847 additions and 21557 deletions
|
@ -2,6 +2,7 @@ use crate::{
|
|||
AuthenticateError, LanguageModel, LanguageModelCompletionError, LanguageModelCompletionEvent,
|
||||
LanguageModelId, LanguageModelName, LanguageModelProvider, LanguageModelProviderId,
|
||||
LanguageModelProviderName, LanguageModelProviderState, LanguageModelRequest,
|
||||
LanguageModelToolChoice,
|
||||
};
|
||||
use futures::{FutureExt, StreamExt, channel::mpsc, future::BoxFuture, stream::BoxStream};
|
||||
use gpui::{AnyView, App, AsyncApp, Entity, Task, Window};
|
||||
|
@ -152,6 +153,10 @@ impl LanguageModel for FakeLanguageModel {
|
|||
false
|
||||
}
|
||||
|
||||
fn supports_tool_choice(&self, _choice: LanguageModelToolChoice) -> bool {
|
||||
false
|
||||
}
|
||||
|
||||
fn telemetry_id(&self) -> String {
|
||||
"fake".to_string()
|
||||
}
|
||||
|
|
|
@ -246,6 +246,9 @@ pub trait LanguageModel: Send + Sync {
|
|||
/// Whether this model supports tools.
|
||||
fn supports_tools(&self) -> bool;
|
||||
|
||||
/// Whether this model supports choosing which tool to use.
|
||||
fn supports_tool_choice(&self, choice: LanguageModelToolChoice) -> bool;
|
||||
|
||||
/// Returns whether this model supports "max mode";
|
||||
fn supports_max_mode(&self) -> bool {
|
||||
if self.provider_id().0 != ZED_CLOUD_PROVIDER_ID {
|
||||
|
|
|
@ -203,6 +203,13 @@ pub struct LanguageModelRequestTool {
|
|||
pub input_schema: serde_json::Value,
|
||||
}
|
||||
|
||||
#[derive(Debug, PartialEq, Hash, Clone, Serialize, Deserialize)]
|
||||
pub enum LanguageModelToolChoice {
|
||||
Auto,
|
||||
Any,
|
||||
None,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, Default, Serialize, Deserialize, PartialEq)]
|
||||
pub struct LanguageModelRequest {
|
||||
pub thread_id: Option<String>,
|
||||
|
@ -210,6 +217,7 @@ pub struct LanguageModelRequest {
|
|||
pub mode: Option<CompletionMode>,
|
||||
pub messages: Vec<LanguageModelRequestMessage>,
|
||||
pub tools: Vec<LanguageModelRequestTool>,
|
||||
pub tool_choice: Option<LanguageModelToolChoice>,
|
||||
pub stop: Vec<String>,
|
||||
pub temperature: Option<f32>,
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue