1use crate::PredictEditsRequestTrigger;
2use serde::{Deserialize, Serialize};
3use std::borrow::Cow;
4
5#[derive(Debug, Deserialize, Serialize)]
6pub struct RawCompletionRequest {
7 pub model: String,
8 pub prompt: String,
9 #[serde(skip_serializing_if = "Option::is_none")]
10 pub max_tokens: Option<u32>,
11 #[serde(skip_serializing_if = "Option::is_none")]
12 pub temperature: Option<f32>,
13 pub stop: Vec<Cow<'static, str>>,
14}
15
16#[derive(Debug, Serialize, Deserialize)]
17pub struct PredictEditsV3Request {
18 #[serde(flatten)]
19 pub input: zeta_prompt::ZetaPromptInput,
20 #[serde(skip_serializing_if = "Option::is_none")]
21 pub model: Option<String>,
22 #[serde(default)]
23 pub prompt_version: zeta_prompt::ZetaVersion,
24 #[serde(default)]
25 pub trigger: PredictEditsRequestTrigger,
26}
27
28#[derive(Debug, Deserialize, Serialize)]
29pub struct PredictEditsV3Response {
30 pub request_id: String,
31 pub output: String,
32}
33
34#[derive(Debug, Deserialize, Serialize)]
35pub struct RawCompletionResponse {
36 pub id: String,
37 pub object: String,
38 pub created: u64,
39 pub model: String,
40 pub choices: Vec<RawCompletionChoice>,
41 pub usage: RawCompletionUsage,
42}
43
44#[derive(Debug, Deserialize, Serialize)]
45pub struct RawCompletionChoice {
46 pub text: String,
47 pub finish_reason: Option<String>,
48}
49
50#[derive(Debug, Serialize, Deserialize)]
51pub struct RawCompletionUsage {
52 pub prompt_tokens: u32,
53 pub completion_tokens: u32,
54 pub total_tokens: u32,
55}