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