zeta: Report Fireworks request data to Snowflake (#22973)

Release Notes:

- N/A

---------

Co-authored-by: Antonio Scandurra <me@as-cii.com>
Co-authored-by: Conrad <conrad@zed.dev>
This commit is contained in:
Thorsten Ball 2025-01-10 23:40:54 +01:00 committed by GitHub
parent 3d80b21a91
commit 1fcc9b36ba
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 236 additions and 3 deletions

View file

@ -34,6 +34,7 @@ collections.workspace = true
dashmap.workspace = true
derive_more.workspace = true
envy = "0.4.2"
fireworks.workspace = true
futures.workspace = true
google_ai.workspace = true
hex.workspace = true

View file

@ -470,23 +470,48 @@ async fn predict_edits(
.replace("<outline>", &outline_prefix)
.replace("<events>", &params.input_events)
.replace("<excerpt>", &params.input_excerpt);
let mut response = open_ai::complete_text(
let mut response = fireworks::complete(
&state.http_client,
api_url,
api_key,
open_ai::CompletionRequest {
fireworks::CompletionRequest {
model: model.to_string(),
prompt: prompt.clone(),
max_tokens: 2048,
temperature: 0.,
prediction: Some(open_ai::Prediction::Content {
prediction: Some(fireworks::Prediction::Content {
content: params.input_excerpt,
}),
rewrite_speculation: Some(true),
},
)
.await?;
state.executor.spawn_detached({
let kinesis_client = state.kinesis_client.clone();
let kinesis_stream = state.config.kinesis_stream.clone();
let headers = response.headers.clone();
let model = model.clone();
async move {
SnowflakeRow::new(
"Fireworks Completion Requested",
claims.metrics_id,
claims.is_staff,
claims.system_id.clone(),
json!({
"model": model.to_string(),
"headers": headers,
}),
)
.write(&kinesis_client, &kinesis_stream)
.await
.log_err();
}
});
let choice = response
.completion
.choices
.pop()
.context("no output from completion response")?;