MCPcopy Create free account
hub / github.com/enowdev/enowX-Coder / generate_title_openai

Function generate_title_openai

src-tauri/src/services/chat_service.rs:931–973  ·  view source on GitHub ↗
(
    provider: &crate::models::Provider,
    model: &str,
    messages: &[Value],
)

Source from the content-addressed store, hash-verified

929}
930
931async fn generate_title_openai(
932 provider: &crate::models::Provider,
933 model: &str,
934 messages: &[Value],
935) -> AppResult<String> {
936 let client = http_client::request_client()?;
937 let endpoint = format!(
938 "{}/chat/completions",
939 provider.base_url.trim_end_matches('/')
940 );
941
942 let payload = serde_json::json!({
943 "model": model,
944 "messages": messages,
945 "temperature": 0.3,
946 "max_tokens": 20,
947 "stream": false,
948 });
949
950 let mut request = client
951 .post(&endpoint)
952 .header(CONTENT_TYPE, "application/json")
953 .json(&payload);
954
955 if let Some(key) = provider.api_key.as_deref().filter(|k| !k.trim().is_empty()) {
956 request = request.header(AUTHORIZATION, format!("Bearer {key}"));
957 }
958
959 let response = request.send().await?;
960 if !response.status().is_success() {
961 let status = response.status();
962 let body = response.text().await.unwrap_or_default();
963 return Err(AppError::Http(format!("{status}: {body}")));
964 }
965
966 let body: Value = response.json().await?;
967 let title = body["choices"][0]["message"]["content"]
968 .as_str()
969 .unwrap_or("New Chat")
970 .to_string();
971
972 Ok(title)
973}
974
975async fn generate_title_anthropic(
976 provider: &crate::models::Provider,

Callers 1

generate_titleFunction · 0.85

Calls 2

request_clientFunction · 0.85
sendMethod · 0.80

Tested by

no test coverage detected