diff options
| author | sigoden <sigoden@gmail.com> | 2024-04-29 08:33:17 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-04-29 08:33:17 +0800 |
| commit | 37a0cd08a92f07ef24e39bdab7c8bced5b59c146 (patch) | |
| tree | 1082ed49fa584a7f8e07763146ab0e73a475b383 /src/client/claude.rs | |
| parent | 865be2bf75bb62b6aeee059f684400b4b9938a15 (diff) | |
| download | aichat-37a0cd08a92f07ef24e39bdab7c8bced5b59c146.tar.gz | |
refactor: rename some structs (#457)
Diffstat (limited to 'src/client/claude.rs')
| -rw-r--r-- | src/client/claude.rs | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/client/claude.rs b/src/client/claude.rs index 8bd87ee..2b770dc 100644 --- a/src/client/claude.rs +++ b/src/client/claude.rs @@ -1,6 +1,6 @@ use super::{ - catch_error, extract_system_message, ClaudeClient, CompletionStats, ExtraConfig, ImageUrl, - MessageContent, MessageContentPart, Model, ModelConfig, PromptType, ReplyHandler, SendData, + catch_error, extract_system_message, ClaudeClient, CompletionDetails, ExtraConfig, ImageUrl, + MessageContent, MessageContentPart, Model, ModelConfig, PromptType, SendData, SseHandler, }; use crate::utils::PromptKind; @@ -54,7 +54,7 @@ impl_client_trait!( claude_send_message_streaming ); -pub async fn claude_send_message(builder: RequestBuilder) -> Result<(String, CompletionStats)> { +pub async fn claude_send_message(builder: RequestBuilder) -> Result<(String, CompletionDetails)> { let res = builder.send().await?; let status = res.status(); let data: Value = res.json().await?; @@ -66,7 +66,7 @@ pub async fn claude_send_message(builder: RequestBuilder) -> Result<(String, Com pub async fn claude_send_message_streaming( builder: RequestBuilder, - handler: &mut ReplyHandler, + handler: &mut SseHandler, ) -> Result<()> { let mut es = builder.eventsource()?; while let Some(event) = es.next().await { @@ -191,15 +191,15 @@ pub fn claude_build_body(data: SendData, model: &Model) -> Result<Value> { Ok(body) } -pub fn claude_extract_completion(data: &Value) -> Result<(String, CompletionStats)> { +pub fn claude_extract_completion(data: &Value) -> Result<(String, CompletionDetails)> { let text = data["content"][0]["text"] .as_str() .ok_or_else(|| anyhow!("Invalid response data: {data}"))?; - let stats = CompletionStats { + let details = CompletionDetails { id: data["id"].as_str().map(|v| v.to_string()), input_tokens: data["usage"]["input_tokens"].as_u64(), output_tokens: data["usage"]["output_tokens"].as_u64(), }; - Ok((text.to_string(), stats)) + Ok((text.to_string(), details)) } |
