mirror of
https://github.com/mii443/openai-api-rs.git
synced 2025-08-22 23:25:39 +00:00
Add response header
This commit is contained in:
@ -16,7 +16,8 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|||||||
);
|
);
|
||||||
|
|
||||||
let result = client.chat_completion(req)?;
|
let result = client.chat_completion(req)?;
|
||||||
println!("{:?}", result.choices[0].message.content);
|
println!("Content: {:?}", result.choices[0].message.content);
|
||||||
|
println!("Response Headers: {:?}", result.headers);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
240
src/v1/api.rs
240
src/v1/api.rs
@ -175,7 +175,10 @@ impl Client {
|
|||||||
let res = self.post("/completions", &req)?;
|
let res = self.post("/completions", &req)?;
|
||||||
let r = res.json::<CompletionResponse>();
|
let r = res.json::<CompletionResponse>();
|
||||||
match r {
|
match r {
|
||||||
Ok(r) => Ok(r),
|
Ok(mut r) => {
|
||||||
|
r.headers = Some(res.headers);
|
||||||
|
Ok(r)
|
||||||
|
}
|
||||||
Err(e) => Err(self.new_error(e)),
|
Err(e) => Err(self.new_error(e)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -184,7 +187,10 @@ impl Client {
|
|||||||
let res = self.post("/edits", &req)?;
|
let res = self.post("/edits", &req)?;
|
||||||
let r = res.json::<EditResponse>();
|
let r = res.json::<EditResponse>();
|
||||||
match r {
|
match r {
|
||||||
Ok(r) => Ok(r),
|
Ok(mut r) => {
|
||||||
|
r.headers = Some(res.headers);
|
||||||
|
Ok(r)
|
||||||
|
}
|
||||||
Err(e) => Err(self.new_error(e)),
|
Err(e) => Err(self.new_error(e)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -196,7 +202,10 @@ impl Client {
|
|||||||
let res = self.post("/images/generations", &req)?;
|
let res = self.post("/images/generations", &req)?;
|
||||||
let r = res.json::<ImageGenerationResponse>();
|
let r = res.json::<ImageGenerationResponse>();
|
||||||
match r {
|
match r {
|
||||||
Ok(r) => Ok(r),
|
Ok(mut r) => {
|
||||||
|
r.headers = Some(res.headers);
|
||||||
|
Ok(r)
|
||||||
|
}
|
||||||
Err(e) => Err(self.new_error(e)),
|
Err(e) => Err(self.new_error(e)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -205,7 +214,10 @@ impl Client {
|
|||||||
let res = self.post("/images/edits", &req)?;
|
let res = self.post("/images/edits", &req)?;
|
||||||
let r = res.json::<ImageEditResponse>();
|
let r = res.json::<ImageEditResponse>();
|
||||||
match r {
|
match r {
|
||||||
Ok(r) => Ok(r),
|
Ok(mut r) => {
|
||||||
|
r.headers = Some(res.headers);
|
||||||
|
Ok(r)
|
||||||
|
}
|
||||||
Err(e) => Err(self.new_error(e)),
|
Err(e) => Err(self.new_error(e)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -217,7 +229,10 @@ impl Client {
|
|||||||
let res = self.post("/images/variations", &req)?;
|
let res = self.post("/images/variations", &req)?;
|
||||||
let r = res.json::<ImageVariationResponse>();
|
let r = res.json::<ImageVariationResponse>();
|
||||||
match r {
|
match r {
|
||||||
Ok(r) => Ok(r),
|
Ok(mut r) => {
|
||||||
|
r.headers = Some(res.headers);
|
||||||
|
Ok(r)
|
||||||
|
}
|
||||||
Err(e) => Err(self.new_error(e)),
|
Err(e) => Err(self.new_error(e)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -226,7 +241,10 @@ impl Client {
|
|||||||
let res = self.post("/embeddings", &req)?;
|
let res = self.post("/embeddings", &req)?;
|
||||||
let r = res.json::<EmbeddingResponse>();
|
let r = res.json::<EmbeddingResponse>();
|
||||||
match r {
|
match r {
|
||||||
Ok(r) => Ok(r),
|
Ok(mut r) => {
|
||||||
|
r.headers = Some(res.headers);
|
||||||
|
Ok(r)
|
||||||
|
}
|
||||||
Err(e) => Err(self.new_error(e)),
|
Err(e) => Err(self.new_error(e)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -235,7 +253,10 @@ impl Client {
|
|||||||
let res = self.get("/files")?;
|
let res = self.get("/files")?;
|
||||||
let r = res.json::<FileListResponse>();
|
let r = res.json::<FileListResponse>();
|
||||||
match r {
|
match r {
|
||||||
Ok(r) => Ok(r),
|
Ok(mut r) => {
|
||||||
|
r.headers = Some(res.headers);
|
||||||
|
Ok(r)
|
||||||
|
}
|
||||||
Err(e) => Err(self.new_error(e)),
|
Err(e) => Err(self.new_error(e)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -244,7 +265,10 @@ impl Client {
|
|||||||
let res = self.post("/files", &req)?;
|
let res = self.post("/files", &req)?;
|
||||||
let r = res.json::<FileUploadResponse>();
|
let r = res.json::<FileUploadResponse>();
|
||||||
match r {
|
match r {
|
||||||
Ok(r) => Ok(r),
|
Ok(mut r) => {
|
||||||
|
r.headers = Some(res.headers);
|
||||||
|
Ok(r)
|
||||||
|
}
|
||||||
Err(e) => Err(self.new_error(e)),
|
Err(e) => Err(self.new_error(e)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -253,7 +277,10 @@ impl Client {
|
|||||||
let res = self.delete(&format!("{}/{}", "/files", req.file_id))?;
|
let res = self.delete(&format!("{}/{}", "/files", req.file_id))?;
|
||||||
let r = res.json::<FileDeleteResponse>();
|
let r = res.json::<FileDeleteResponse>();
|
||||||
match r {
|
match r {
|
||||||
Ok(r) => Ok(r),
|
Ok(mut r) => {
|
||||||
|
r.headers = Some(res.headers);
|
||||||
|
Ok(r)
|
||||||
|
}
|
||||||
Err(e) => Err(self.new_error(e)),
|
Err(e) => Err(self.new_error(e)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -265,7 +292,10 @@ impl Client {
|
|||||||
let res = self.get(&format!("{}/{}", "/files", req.file_id))?;
|
let res = self.get(&format!("{}/{}", "/files", req.file_id))?;
|
||||||
let r = res.json::<FileRetrieveResponse>();
|
let r = res.json::<FileRetrieveResponse>();
|
||||||
match r {
|
match r {
|
||||||
Ok(r) => Ok(r),
|
Ok(mut r) => {
|
||||||
|
r.headers = Some(res.headers);
|
||||||
|
Ok(r)
|
||||||
|
}
|
||||||
Err(e) => Err(self.new_error(e)),
|
Err(e) => Err(self.new_error(e)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -277,7 +307,10 @@ impl Client {
|
|||||||
let res = self.get(&format!("{}/{}/content", "/files", req.file_id))?;
|
let res = self.get(&format!("{}/{}/content", "/files", req.file_id))?;
|
||||||
let r = res.json::<FileRetrieveContentResponse>();
|
let r = res.json::<FileRetrieveContentResponse>();
|
||||||
match r {
|
match r {
|
||||||
Ok(r) => Ok(r),
|
Ok(mut r) => {
|
||||||
|
r.headers = Some(res.headers);
|
||||||
|
Ok(r)
|
||||||
|
}
|
||||||
Err(e) => Err(self.new_error(e)),
|
Err(e) => Err(self.new_error(e)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -289,7 +322,10 @@ impl Client {
|
|||||||
let res = self.post("/chat/completions", &req)?;
|
let res = self.post("/chat/completions", &req)?;
|
||||||
let r = res.json::<ChatCompletionResponse>();
|
let r = res.json::<ChatCompletionResponse>();
|
||||||
match r {
|
match r {
|
||||||
Ok(r) => Ok(r),
|
Ok(mut r) => {
|
||||||
|
r.headers = Some(res.headers);
|
||||||
|
Ok(r)
|
||||||
|
}
|
||||||
Err(e) => Err(self.new_error(e)),
|
Err(e) => Err(self.new_error(e)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -301,7 +337,10 @@ impl Client {
|
|||||||
let res = self.post("/audio/transcriptions", &req)?;
|
let res = self.post("/audio/transcriptions", &req)?;
|
||||||
let r = res.json::<AudioTranscriptionResponse>();
|
let r = res.json::<AudioTranscriptionResponse>();
|
||||||
match r {
|
match r {
|
||||||
Ok(r) => Ok(r),
|
Ok(mut r) => {
|
||||||
|
r.headers = Some(res.headers);
|
||||||
|
Ok(r)
|
||||||
|
}
|
||||||
Err(e) => Err(self.new_error(e)),
|
Err(e) => Err(self.new_error(e)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -313,7 +352,10 @@ impl Client {
|
|||||||
let res = self.post("/audio/translations", &req)?;
|
let res = self.post("/audio/translations", &req)?;
|
||||||
let r = res.json::<AudioTranslationResponse>();
|
let r = res.json::<AudioTranslationResponse>();
|
||||||
match r {
|
match r {
|
||||||
Ok(r) => Ok(r),
|
Ok(mut r) => {
|
||||||
|
r.headers = Some(res.headers);
|
||||||
|
Ok(r)
|
||||||
|
}
|
||||||
Err(e) => Err(self.new_error(e)),
|
Err(e) => Err(self.new_error(e)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -348,7 +390,10 @@ impl Client {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Ok(AudioSpeechResponse { result: true })
|
Ok(AudioSpeechResponse {
|
||||||
|
result: true,
|
||||||
|
headers: Some(res.headers),
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn create_fine_tuning_job(
|
pub fn create_fine_tuning_job(
|
||||||
@ -358,7 +403,10 @@ impl Client {
|
|||||||
let res = self.post("/fine_tuning/jobs", &req)?;
|
let res = self.post("/fine_tuning/jobs", &req)?;
|
||||||
let r = res.json::<FineTuningJobObject>();
|
let r = res.json::<FineTuningJobObject>();
|
||||||
match r {
|
match r {
|
||||||
Ok(r) => Ok(r),
|
Ok(mut r) => {
|
||||||
|
r.headers = Some(res.headers);
|
||||||
|
Ok(r)
|
||||||
|
}
|
||||||
Err(e) => Err(self.new_error(e)),
|
Err(e) => Err(self.new_error(e)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -369,7 +417,10 @@ impl Client {
|
|||||||
let res = self.get("/fine_tuning/jobs")?;
|
let res = self.get("/fine_tuning/jobs")?;
|
||||||
let r = res.json::<FineTuningPagination<FineTuningJobObject>>();
|
let r = res.json::<FineTuningPagination<FineTuningJobObject>>();
|
||||||
match r {
|
match r {
|
||||||
Ok(r) => Ok(r),
|
Ok(mut r) => {
|
||||||
|
r.headers = Some(res.headers);
|
||||||
|
Ok(r)
|
||||||
|
}
|
||||||
Err(e) => Err(self.new_error(e)),
|
Err(e) => Err(self.new_error(e)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -384,7 +435,10 @@ impl Client {
|
|||||||
))?;
|
))?;
|
||||||
let r = res.json::<FineTuningPagination<FineTuningJobEvent>>();
|
let r = res.json::<FineTuningPagination<FineTuningJobEvent>>();
|
||||||
match r {
|
match r {
|
||||||
Ok(r) => Ok(r),
|
Ok(mut r) => {
|
||||||
|
r.headers = Some(res.headers);
|
||||||
|
Ok(r)
|
||||||
|
}
|
||||||
Err(e) => Err(self.new_error(e)),
|
Err(e) => Err(self.new_error(e)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -396,7 +450,10 @@ impl Client {
|
|||||||
let res = self.get(&format!("/fine_tuning/jobs/{}", req.fine_tuning_job_id))?;
|
let res = self.get(&format!("/fine_tuning/jobs/{}", req.fine_tuning_job_id))?;
|
||||||
let r = res.json::<FineTuningJobObject>();
|
let r = res.json::<FineTuningJobObject>();
|
||||||
match r {
|
match r {
|
||||||
Ok(r) => Ok(r),
|
Ok(mut r) => {
|
||||||
|
r.headers = Some(res.headers);
|
||||||
|
Ok(r)
|
||||||
|
}
|
||||||
Err(e) => Err(self.new_error(e)),
|
Err(e) => Err(self.new_error(e)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -411,7 +468,10 @@ impl Client {
|
|||||||
)?;
|
)?;
|
||||||
let r = res.json::<FineTuningJobObject>();
|
let r = res.json::<FineTuningJobObject>();
|
||||||
match r {
|
match r {
|
||||||
Ok(r) => Ok(r),
|
Ok(mut r) => {
|
||||||
|
r.headers = Some(res.headers);
|
||||||
|
Ok(r)
|
||||||
|
}
|
||||||
Err(e) => Err(self.new_error(e)),
|
Err(e) => Err(self.new_error(e)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -423,7 +483,10 @@ impl Client {
|
|||||||
let res = self.post("/moderations", &req)?;
|
let res = self.post("/moderations", &req)?;
|
||||||
let r = res.json::<CreateModerationResponse>();
|
let r = res.json::<CreateModerationResponse>();
|
||||||
match r {
|
match r {
|
||||||
Ok(r) => Ok(r),
|
Ok(mut r) => {
|
||||||
|
r.headers = Some(res.headers);
|
||||||
|
Ok(r)
|
||||||
|
}
|
||||||
Err(e) => Err(self.new_error(e)),
|
Err(e) => Err(self.new_error(e)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -432,7 +495,10 @@ impl Client {
|
|||||||
let res = self.post("/assistants", &req)?;
|
let res = self.post("/assistants", &req)?;
|
||||||
let r = res.json::<AssistantObject>();
|
let r = res.json::<AssistantObject>();
|
||||||
match r {
|
match r {
|
||||||
Ok(r) => Ok(r),
|
Ok(mut r) => {
|
||||||
|
r.headers = Some(res.headers);
|
||||||
|
Ok(r)
|
||||||
|
}
|
||||||
Err(e) => Err(self.new_error(e)),
|
Err(e) => Err(self.new_error(e)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -441,7 +507,10 @@ impl Client {
|
|||||||
let res = self.get(&format!("/assistants/{}", assistant_id))?;
|
let res = self.get(&format!("/assistants/{}", assistant_id))?;
|
||||||
let r = res.json::<AssistantObject>();
|
let r = res.json::<AssistantObject>();
|
||||||
match r {
|
match r {
|
||||||
Ok(r) => Ok(r),
|
Ok(mut r) => {
|
||||||
|
r.headers = Some(res.headers);
|
||||||
|
Ok(r)
|
||||||
|
}
|
||||||
Err(e) => Err(self.new_error(e)),
|
Err(e) => Err(self.new_error(e)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -454,7 +523,10 @@ impl Client {
|
|||||||
let res = self.post(&format!("/assistants/{}", assistant_id), &req)?;
|
let res = self.post(&format!("/assistants/{}", assistant_id), &req)?;
|
||||||
let r = res.json::<AssistantObject>();
|
let r = res.json::<AssistantObject>();
|
||||||
match r {
|
match r {
|
||||||
Ok(r) => Ok(r),
|
Ok(mut r) => {
|
||||||
|
r.headers = Some(res.headers);
|
||||||
|
Ok(r)
|
||||||
|
}
|
||||||
Err(e) => Err(self.new_error(e)),
|
Err(e) => Err(self.new_error(e)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -463,7 +535,10 @@ impl Client {
|
|||||||
let res = self.delete(&format!("/assistants/{}", assistant_id))?;
|
let res = self.delete(&format!("/assistants/{}", assistant_id))?;
|
||||||
let r = res.json::<DeletionStatus>();
|
let r = res.json::<DeletionStatus>();
|
||||||
match r {
|
match r {
|
||||||
Ok(r) => Ok(r),
|
Ok(mut r) => {
|
||||||
|
r.headers = Some(res.headers);
|
||||||
|
Ok(r)
|
||||||
|
}
|
||||||
Err(e) => Err(self.new_error(e)),
|
Err(e) => Err(self.new_error(e)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -480,7 +555,10 @@ impl Client {
|
|||||||
let res = self.get(&url)?;
|
let res = self.get(&url)?;
|
||||||
let r = res.json::<ListAssistant>();
|
let r = res.json::<ListAssistant>();
|
||||||
match r {
|
match r {
|
||||||
Ok(r) => Ok(r),
|
Ok(mut r) => {
|
||||||
|
r.headers = Some(res.headers);
|
||||||
|
Ok(r)
|
||||||
|
}
|
||||||
Err(e) => Err(self.new_error(e)),
|
Err(e) => Err(self.new_error(e)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -493,7 +571,10 @@ impl Client {
|
|||||||
let res = self.post(&format!("/assistants/{}/files", assistant_id), &req)?;
|
let res = self.post(&format!("/assistants/{}/files", assistant_id), &req)?;
|
||||||
let r = res.json::<AssistantFileObject>();
|
let r = res.json::<AssistantFileObject>();
|
||||||
match r {
|
match r {
|
||||||
Ok(r) => Ok(r),
|
Ok(mut r) => {
|
||||||
|
r.headers = Some(res.headers);
|
||||||
|
Ok(r)
|
||||||
|
}
|
||||||
Err(e) => Err(self.new_error(e)),
|
Err(e) => Err(self.new_error(e)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -506,7 +587,10 @@ impl Client {
|
|||||||
let res = self.get(&format!("/assistants/{}/files/{}", assistant_id, file_id))?;
|
let res = self.get(&format!("/assistants/{}/files/{}", assistant_id, file_id))?;
|
||||||
let r = res.json::<AssistantFileObject>();
|
let r = res.json::<AssistantFileObject>();
|
||||||
match r {
|
match r {
|
||||||
Ok(r) => Ok(r),
|
Ok(mut r) => {
|
||||||
|
r.headers = Some(res.headers);
|
||||||
|
Ok(r)
|
||||||
|
}
|
||||||
Err(e) => Err(self.new_error(e)),
|
Err(e) => Err(self.new_error(e)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -519,7 +603,10 @@ impl Client {
|
|||||||
let res = self.delete(&format!("/assistants/{}/files/{}", assistant_id, file_id))?;
|
let res = self.delete(&format!("/assistants/{}/files/{}", assistant_id, file_id))?;
|
||||||
let r = res.json::<DeletionStatus>();
|
let r = res.json::<DeletionStatus>();
|
||||||
match r {
|
match r {
|
||||||
Ok(r) => Ok(r),
|
Ok(mut r) => {
|
||||||
|
r.headers = Some(res.headers);
|
||||||
|
Ok(r)
|
||||||
|
}
|
||||||
Err(e) => Err(self.new_error(e)),
|
Err(e) => Err(self.new_error(e)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -537,7 +624,10 @@ impl Client {
|
|||||||
let res = self.get(&url)?;
|
let res = self.get(&url)?;
|
||||||
let r = res.json::<ListAssistantFile>();
|
let r = res.json::<ListAssistantFile>();
|
||||||
match r {
|
match r {
|
||||||
Ok(r) => Ok(r),
|
Ok(mut r) => {
|
||||||
|
r.headers = Some(res.headers);
|
||||||
|
Ok(r)
|
||||||
|
}
|
||||||
Err(e) => Err(self.new_error(e)),
|
Err(e) => Err(self.new_error(e)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -546,7 +636,10 @@ impl Client {
|
|||||||
let res = self.post("/threads", &req)?;
|
let res = self.post("/threads", &req)?;
|
||||||
let r = res.json::<ThreadObject>();
|
let r = res.json::<ThreadObject>();
|
||||||
match r {
|
match r {
|
||||||
Ok(r) => Ok(r),
|
Ok(mut r) => {
|
||||||
|
r.headers = Some(res.headers);
|
||||||
|
Ok(r)
|
||||||
|
}
|
||||||
Err(e) => Err(self.new_error(e)),
|
Err(e) => Err(self.new_error(e)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -555,7 +648,10 @@ impl Client {
|
|||||||
let res = self.get(&format!("/threads/{}", thread_id))?;
|
let res = self.get(&format!("/threads/{}", thread_id))?;
|
||||||
let r = res.json::<ThreadObject>();
|
let r = res.json::<ThreadObject>();
|
||||||
match r {
|
match r {
|
||||||
Ok(r) => Ok(r),
|
Ok(mut r) => {
|
||||||
|
r.headers = Some(res.headers);
|
||||||
|
Ok(r)
|
||||||
|
}
|
||||||
Err(e) => Err(self.new_error(e)),
|
Err(e) => Err(self.new_error(e)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -568,7 +664,10 @@ impl Client {
|
|||||||
let res = self.post(&format!("/threads/{}", thread_id), &req)?;
|
let res = self.post(&format!("/threads/{}", thread_id), &req)?;
|
||||||
let r = res.json::<ThreadObject>();
|
let r = res.json::<ThreadObject>();
|
||||||
match r {
|
match r {
|
||||||
Ok(r) => Ok(r),
|
Ok(mut r) => {
|
||||||
|
r.headers = Some(res.headers);
|
||||||
|
Ok(r)
|
||||||
|
}
|
||||||
Err(e) => Err(self.new_error(e)),
|
Err(e) => Err(self.new_error(e)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -577,7 +676,10 @@ impl Client {
|
|||||||
let res = self.delete(&format!("/threads/{}", thread_id))?;
|
let res = self.delete(&format!("/threads/{}", thread_id))?;
|
||||||
let r = res.json::<DeletionStatus>();
|
let r = res.json::<DeletionStatus>();
|
||||||
match r {
|
match r {
|
||||||
Ok(r) => Ok(r),
|
Ok(mut r) => {
|
||||||
|
r.headers = Some(res.headers);
|
||||||
|
Ok(r)
|
||||||
|
}
|
||||||
Err(e) => Err(self.new_error(e)),
|
Err(e) => Err(self.new_error(e)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -590,7 +692,10 @@ impl Client {
|
|||||||
let res = self.post(&format!("/threads/{}/messages", thread_id), &req)?;
|
let res = self.post(&format!("/threads/{}/messages", thread_id), &req)?;
|
||||||
let r = res.json::<MessageObject>();
|
let r = res.json::<MessageObject>();
|
||||||
match r {
|
match r {
|
||||||
Ok(r) => Ok(r),
|
Ok(mut r) => {
|
||||||
|
r.headers = Some(res.headers);
|
||||||
|
Ok(r)
|
||||||
|
}
|
||||||
Err(e) => Err(self.new_error(e)),
|
Err(e) => Err(self.new_error(e)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -603,7 +708,10 @@ impl Client {
|
|||||||
let res = self.get(&format!("/threads/{}/messages/{}", thread_id, message_id))?;
|
let res = self.get(&format!("/threads/{}/messages/{}", thread_id, message_id))?;
|
||||||
let r = res.json::<MessageObject>();
|
let r = res.json::<MessageObject>();
|
||||||
match r {
|
match r {
|
||||||
Ok(r) => Ok(r),
|
Ok(mut r) => {
|
||||||
|
r.headers = Some(res.headers);
|
||||||
|
Ok(r)
|
||||||
|
}
|
||||||
Err(e) => Err(self.new_error(e)),
|
Err(e) => Err(self.new_error(e)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -620,7 +728,10 @@ impl Client {
|
|||||||
)?;
|
)?;
|
||||||
let r = res.json::<MessageObject>();
|
let r = res.json::<MessageObject>();
|
||||||
match r {
|
match r {
|
||||||
Ok(r) => Ok(r),
|
Ok(mut r) => {
|
||||||
|
r.headers = Some(res.headers);
|
||||||
|
Ok(r)
|
||||||
|
}
|
||||||
Err(e) => Err(self.new_error(e)),
|
Err(e) => Err(self.new_error(e)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -629,7 +740,10 @@ impl Client {
|
|||||||
let res = self.get(&format!("/threads/{}/messages", thread_id))?;
|
let res = self.get(&format!("/threads/{}/messages", thread_id))?;
|
||||||
let r = res.json::<ListMessage>();
|
let r = res.json::<ListMessage>();
|
||||||
match r {
|
match r {
|
||||||
Ok(r) => Ok(r),
|
Ok(mut r) => {
|
||||||
|
r.headers = Some(res.headers);
|
||||||
|
Ok(r)
|
||||||
|
}
|
||||||
Err(e) => Err(self.new_error(e)),
|
Err(e) => Err(self.new_error(e)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -646,7 +760,10 @@ impl Client {
|
|||||||
))?;
|
))?;
|
||||||
let r = res.json::<MessageFileObject>();
|
let r = res.json::<MessageFileObject>();
|
||||||
match r {
|
match r {
|
||||||
Ok(r) => Ok(r),
|
Ok(mut r) => {
|
||||||
|
r.headers = Some(res.headers);
|
||||||
|
Ok(r)
|
||||||
|
}
|
||||||
Err(e) => Err(self.new_error(e)),
|
Err(e) => Err(self.new_error(e)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -665,7 +782,10 @@ impl Client {
|
|||||||
let res = self.get(&url)?;
|
let res = self.get(&url)?;
|
||||||
let r = res.json::<ListMessageFile>();
|
let r = res.json::<ListMessageFile>();
|
||||||
match r {
|
match r {
|
||||||
Ok(r) => Ok(r),
|
Ok(mut r) => {
|
||||||
|
r.headers = Some(res.headers);
|
||||||
|
Ok(r)
|
||||||
|
}
|
||||||
Err(e) => Err(self.new_error(e)),
|
Err(e) => Err(self.new_error(e)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -678,7 +798,10 @@ impl Client {
|
|||||||
let res = self.post(&format!("/threads/{}/runs", thread_id), &req)?;
|
let res = self.post(&format!("/threads/{}/runs", thread_id), &req)?;
|
||||||
let r = res.json::<RunObject>();
|
let r = res.json::<RunObject>();
|
||||||
match r {
|
match r {
|
||||||
Ok(r) => Ok(r),
|
Ok(mut r) => {
|
||||||
|
r.headers = Some(res.headers);
|
||||||
|
Ok(r)
|
||||||
|
}
|
||||||
Err(e) => Err(self.new_error(e)),
|
Err(e) => Err(self.new_error(e)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -687,7 +810,10 @@ impl Client {
|
|||||||
let res = self.get(&format!("/threads/{}/runs/{}", thread_id, run_id))?;
|
let res = self.get(&format!("/threads/{}/runs/{}", thread_id, run_id))?;
|
||||||
let r = res.json::<RunObject>();
|
let r = res.json::<RunObject>();
|
||||||
match r {
|
match r {
|
||||||
Ok(r) => Ok(r),
|
Ok(mut r) => {
|
||||||
|
r.headers = Some(res.headers);
|
||||||
|
Ok(r)
|
||||||
|
}
|
||||||
Err(e) => Err(self.new_error(e)),
|
Err(e) => Err(self.new_error(e)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -701,7 +827,10 @@ impl Client {
|
|||||||
let res = self.post(&format!("/threads/{}/runs/{}", thread_id, run_id), &req)?;
|
let res = self.post(&format!("/threads/{}/runs/{}", thread_id, run_id), &req)?;
|
||||||
let r = res.json::<RunObject>();
|
let r = res.json::<RunObject>();
|
||||||
match r {
|
match r {
|
||||||
Ok(r) => Ok(r),
|
Ok(mut r) => {
|
||||||
|
r.headers = Some(res.headers);
|
||||||
|
Ok(r)
|
||||||
|
}
|
||||||
Err(e) => Err(self.new_error(e)),
|
Err(e) => Err(self.new_error(e)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -719,7 +848,10 @@ impl Client {
|
|||||||
let res = self.get(&url)?;
|
let res = self.get(&url)?;
|
||||||
let r = res.json::<ListRun>();
|
let r = res.json::<ListRun>();
|
||||||
match r {
|
match r {
|
||||||
Ok(r) => Ok(r),
|
Ok(mut r) => {
|
||||||
|
r.headers = Some(res.headers);
|
||||||
|
Ok(r)
|
||||||
|
}
|
||||||
Err(e) => Err(self.new_error(e)),
|
Err(e) => Err(self.new_error(e)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -732,7 +864,10 @@ impl Client {
|
|||||||
)?;
|
)?;
|
||||||
let r = res.json::<RunObject>();
|
let r = res.json::<RunObject>();
|
||||||
match r {
|
match r {
|
||||||
Ok(r) => Ok(r),
|
Ok(mut r) => {
|
||||||
|
r.headers = Some(res.headers);
|
||||||
|
Ok(r)
|
||||||
|
}
|
||||||
Err(e) => Err(self.new_error(e)),
|
Err(e) => Err(self.new_error(e)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -744,7 +879,10 @@ impl Client {
|
|||||||
let res = self.post("/threads/runs", &req)?;
|
let res = self.post("/threads/runs", &req)?;
|
||||||
let r = res.json::<RunObject>();
|
let r = res.json::<RunObject>();
|
||||||
match r {
|
match r {
|
||||||
Ok(r) => Ok(r),
|
Ok(mut r) => {
|
||||||
|
r.headers = Some(res.headers);
|
||||||
|
Ok(r)
|
||||||
|
}
|
||||||
Err(e) => Err(self.new_error(e)),
|
Err(e) => Err(self.new_error(e)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -761,7 +899,10 @@ impl Client {
|
|||||||
))?;
|
))?;
|
||||||
let r = res.json::<RunStepObject>();
|
let r = res.json::<RunStepObject>();
|
||||||
match r {
|
match r {
|
||||||
Ok(r) => Ok(r),
|
Ok(mut r) => {
|
||||||
|
r.headers = Some(res.headers);
|
||||||
|
Ok(r)
|
||||||
|
}
|
||||||
Err(e) => Err(self.new_error(e)),
|
Err(e) => Err(self.new_error(e)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -780,7 +921,10 @@ impl Client {
|
|||||||
let res = self.get(&url)?;
|
let res = self.get(&url)?;
|
||||||
let r = res.json::<ListRunStep>();
|
let r = res.json::<ListRunStep>();
|
||||||
match r {
|
match r {
|
||||||
Ok(r) => Ok(r),
|
Ok(mut r) => {
|
||||||
|
r.headers = Some(res.headers);
|
||||||
|
Ok(r)
|
||||||
|
}
|
||||||
Err(e) => Err(self.new_error(e)),
|
Err(e) => Err(self.new_error(e)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -59,6 +59,7 @@ pub struct AssistantObject {
|
|||||||
pub tools: Vec<HashMap<String, String>>,
|
pub tools: Vec<HashMap<String, String>>,
|
||||||
pub file_ids: Vec<String>,
|
pub file_ids: Vec<String>,
|
||||||
pub metadata: HashMap<String, String>,
|
pub metadata: HashMap<String, String>,
|
||||||
|
pub headers: Option<HashMap<String, String>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Deserialize, Serialize)]
|
#[derive(Debug, Deserialize, Serialize)]
|
||||||
@ -66,12 +67,14 @@ pub struct DeletionStatus {
|
|||||||
pub id: String,
|
pub id: String,
|
||||||
pub object: String,
|
pub object: String,
|
||||||
pub deleted: bool,
|
pub deleted: bool,
|
||||||
|
pub headers: Option<HashMap<String, String>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Deserialize, Serialize)]
|
#[derive(Debug, Deserialize, Serialize)]
|
||||||
pub struct ListAssistant {
|
pub struct ListAssistant {
|
||||||
pub object: String,
|
pub object: String,
|
||||||
pub data: Vec<AssistantObject>,
|
pub data: Vec<AssistantObject>,
|
||||||
|
pub headers: Option<HashMap<String, String>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Serialize, Clone)]
|
#[derive(Debug, Serialize, Clone)]
|
||||||
@ -85,10 +88,12 @@ pub struct AssistantFileObject {
|
|||||||
pub object: String,
|
pub object: String,
|
||||||
pub created_at: i64,
|
pub created_at: i64,
|
||||||
pub assistant_id: String,
|
pub assistant_id: String,
|
||||||
|
pub headers: Option<HashMap<String, String>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Deserialize, Serialize)]
|
#[derive(Debug, Deserialize, Serialize)]
|
||||||
pub struct ListAssistantFile {
|
pub struct ListAssistantFile {
|
||||||
pub object: String,
|
pub object: String,
|
||||||
pub data: Vec<AssistantFileObject>,
|
pub data: Vec<AssistantFileObject>,
|
||||||
|
pub headers: Option<HashMap<String, String>>,
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
use std::collections::HashMap;
|
||||||
|
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
|
|
||||||
use crate::impl_builder_methods;
|
use crate::impl_builder_methods;
|
||||||
@ -42,6 +44,7 @@ impl_builder_methods!(
|
|||||||
#[derive(Debug, Deserialize, Serialize)]
|
#[derive(Debug, Deserialize, Serialize)]
|
||||||
pub struct AudioTranscriptionResponse {
|
pub struct AudioTranscriptionResponse {
|
||||||
pub text: String,
|
pub text: String,
|
||||||
|
pub headers: Option<HashMap<String, String>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Serialize, Clone)]
|
#[derive(Debug, Serialize, Clone)]
|
||||||
@ -78,6 +81,7 @@ impl_builder_methods!(
|
|||||||
#[derive(Debug, Deserialize, Serialize)]
|
#[derive(Debug, Deserialize, Serialize)]
|
||||||
pub struct AudioTranslationResponse {
|
pub struct AudioTranslationResponse {
|
||||||
pub text: String,
|
pub text: String,
|
||||||
|
pub headers: Option<HashMap<String, String>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
pub const TTS_1: &str = "tts-1";
|
pub const TTS_1: &str = "tts-1";
|
||||||
@ -114,4 +118,5 @@ impl_builder_methods!(AudioSpeechRequest,);
|
|||||||
#[derive(Debug, Deserialize, Serialize)]
|
#[derive(Debug, Deserialize, Serialize)]
|
||||||
pub struct AudioSpeechResponse {
|
pub struct AudioSpeechResponse {
|
||||||
pub result: bool,
|
pub result: bool,
|
||||||
|
pub headers: Option<HashMap<String, String>>,
|
||||||
}
|
}
|
||||||
|
@ -175,6 +175,7 @@ pub struct ChatCompletionResponse {
|
|||||||
pub choices: Vec<ChatCompletionChoice>,
|
pub choices: Vec<ChatCompletionChoice>,
|
||||||
pub usage: common::Usage,
|
pub usage: common::Usage,
|
||||||
pub system_fingerprint: Option<String>,
|
pub system_fingerprint: Option<String>,
|
||||||
|
pub headers: Option<HashMap<String, String>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Deserialize, Serialize, Clone, PartialEq, Eq)]
|
#[derive(Debug, Deserialize, Serialize, Clone, PartialEq, Eq)]
|
||||||
|
@ -117,4 +117,5 @@ pub struct CompletionResponse {
|
|||||||
pub model: String,
|
pub model: String,
|
||||||
pub choices: Vec<CompletionChoice>,
|
pub choices: Vec<CompletionChoice>,
|
||||||
pub usage: common::Usage,
|
pub usage: common::Usage,
|
||||||
|
pub headers: Option<HashMap<String, String>>,
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
|
use std::collections::HashMap;
|
||||||
use std::option::Option;
|
use std::option::Option;
|
||||||
|
|
||||||
use crate::impl_builder_methods;
|
use crate::impl_builder_methods;
|
||||||
@ -51,4 +52,5 @@ pub struct EditResponse {
|
|||||||
pub created: i64,
|
pub created: i64,
|
||||||
pub usage: common::Usage,
|
pub usage: common::Usage,
|
||||||
pub choices: Vec<EditChoice>,
|
pub choices: Vec<EditChoice>,
|
||||||
|
pub headers: Option<HashMap<String, String>>,
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
|
use std::collections::HashMap;
|
||||||
use std::option::Option;
|
use std::option::Option;
|
||||||
|
|
||||||
use crate::impl_builder_methods;
|
use crate::impl_builder_methods;
|
||||||
@ -42,6 +43,7 @@ pub struct EmbeddingResponse {
|
|||||||
pub data: Vec<EmbeddingData>,
|
pub data: Vec<EmbeddingData>,
|
||||||
pub model: String,
|
pub model: String,
|
||||||
pub usage: Usage,
|
pub usage: Usage,
|
||||||
|
pub headers: Option<HashMap<String, String>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Deserialize, Serialize)]
|
#[derive(Debug, Deserialize, Serialize)]
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
use std::collections::HashMap;
|
||||||
|
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
|
|
||||||
#[derive(Debug, Deserialize, Serialize)]
|
#[derive(Debug, Deserialize, Serialize)]
|
||||||
@ -14,6 +16,7 @@ pub struct FileData {
|
|||||||
pub struct FileListResponse {
|
pub struct FileListResponse {
|
||||||
pub object: String,
|
pub object: String,
|
||||||
pub data: Vec<FileData>,
|
pub data: Vec<FileData>,
|
||||||
|
pub headers: Option<HashMap<String, String>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Serialize)]
|
#[derive(Debug, Serialize)]
|
||||||
@ -36,6 +39,7 @@ pub struct FileUploadResponse {
|
|||||||
pub created_at: i64,
|
pub created_at: i64,
|
||||||
pub filename: String,
|
pub filename: String,
|
||||||
pub purpose: String,
|
pub purpose: String,
|
||||||
|
pub headers: Option<HashMap<String, String>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Serialize)]
|
#[derive(Debug, Serialize)]
|
||||||
@ -54,6 +58,7 @@ pub struct FileDeleteResponse {
|
|||||||
pub id: String,
|
pub id: String,
|
||||||
pub oejct: String,
|
pub oejct: String,
|
||||||
pub delete: bool,
|
pub delete: bool,
|
||||||
|
pub headers: Option<HashMap<String, String>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Serialize)]
|
#[derive(Debug, Serialize)]
|
||||||
@ -75,6 +80,7 @@ pub struct FileRetrieveResponse {
|
|||||||
pub created_at: i64,
|
pub created_at: i64,
|
||||||
pub filename: String,
|
pub filename: String,
|
||||||
pub purpose: String,
|
pub purpose: String,
|
||||||
|
pub headers: Option<HashMap<String, String>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Serialize)]
|
#[derive(Debug, Serialize)]
|
||||||
@ -96,4 +102,5 @@ pub struct FileRetrieveContentResponse {
|
|||||||
pub created_at: i64,
|
pub created_at: i64,
|
||||||
pub filename: String,
|
pub filename: String,
|
||||||
pub purpose: String,
|
pub purpose: String,
|
||||||
|
pub headers: Option<HashMap<String, String>>,
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
|
use std::collections::HashMap;
|
||||||
|
|
||||||
use crate::impl_builder_methods;
|
use crate::impl_builder_methods;
|
||||||
|
|
||||||
@ -98,6 +99,7 @@ pub struct FineTuningPagination<T> {
|
|||||||
pub object: String,
|
pub object: String,
|
||||||
pub data: Vec<T>,
|
pub data: Vec<T>,
|
||||||
pub has_more: bool,
|
pub has_more: bool,
|
||||||
|
pub headers: Option<HashMap<String, String>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Deserialize, Serialize)]
|
#[derive(Debug, Deserialize, Serialize)]
|
||||||
@ -116,6 +118,7 @@ pub struct FineTuningJobObject {
|
|||||||
pub trained_tokens: Option<i64>,
|
pub trained_tokens: Option<i64>,
|
||||||
pub training_file: String,
|
pub training_file: String,
|
||||||
pub validation_file: Option<String>,
|
pub validation_file: Option<String>,
|
||||||
|
pub headers: Option<HashMap<String, String>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Deserialize, Serialize)]
|
#[derive(Debug, Deserialize, Serialize)]
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
|
use std::collections::HashMap;
|
||||||
use std::option::Option;
|
use std::option::Option;
|
||||||
|
|
||||||
use crate::impl_builder_methods;
|
use crate::impl_builder_methods;
|
||||||
@ -49,6 +50,7 @@ impl_builder_methods!(
|
|||||||
pub struct ImageGenerationResponse {
|
pub struct ImageGenerationResponse {
|
||||||
pub created: i64,
|
pub created: i64,
|
||||||
pub data: Vec<ImageData>,
|
pub data: Vec<ImageData>,
|
||||||
|
pub headers: Option<HashMap<String, String>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Serialize, Clone)]
|
#[derive(Debug, Serialize, Clone)]
|
||||||
@ -98,6 +100,7 @@ impl_builder_methods!(
|
|||||||
pub struct ImageEditResponse {
|
pub struct ImageEditResponse {
|
||||||
pub created: i64,
|
pub created: i64,
|
||||||
pub data: Vec<ImageData>,
|
pub data: Vec<ImageData>,
|
||||||
|
pub headers: Option<HashMap<String, String>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Serialize, Clone)]
|
#[derive(Debug, Serialize, Clone)]
|
||||||
@ -141,4 +144,5 @@ impl_builder_methods!(
|
|||||||
pub struct ImageVariationResponse {
|
pub struct ImageVariationResponse {
|
||||||
pub created: i64,
|
pub created: i64,
|
||||||
pub data: Vec<ImageData>,
|
pub data: Vec<ImageData>,
|
||||||
|
pub headers: Option<HashMap<String, String>>,
|
||||||
}
|
}
|
||||||
|
@ -67,6 +67,7 @@ pub struct MessageObject {
|
|||||||
pub run_id: Option<String>,
|
pub run_id: Option<String>,
|
||||||
pub file_ids: Vec<String>,
|
pub file_ids: Vec<String>,
|
||||||
pub metadata: HashMap<String, String>,
|
pub metadata: HashMap<String, String>,
|
||||||
|
pub headers: Option<HashMap<String, String>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Deserialize, Serialize, Clone, PartialEq, Eq)]
|
#[derive(Debug, Deserialize, Serialize, Clone, PartialEq, Eq)]
|
||||||
@ -98,6 +99,7 @@ pub struct ListMessage {
|
|||||||
pub first_id: String,
|
pub first_id: String,
|
||||||
pub last_id: String,
|
pub last_id: String,
|
||||||
pub has_more: bool,
|
pub has_more: bool,
|
||||||
|
pub headers: Option<HashMap<String, String>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Deserialize, Serialize)]
|
#[derive(Debug, Deserialize, Serialize)]
|
||||||
@ -106,6 +108,7 @@ pub struct MessageFileObject {
|
|||||||
pub object: String,
|
pub object: String,
|
||||||
pub created_at: i64,
|
pub created_at: i64,
|
||||||
pub message_id: String,
|
pub message_id: String,
|
||||||
|
pub headers: Option<HashMap<String, String>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Deserialize, Serialize)]
|
#[derive(Debug, Deserialize, Serialize)]
|
||||||
@ -115,4 +118,5 @@ pub struct ListMessageFile {
|
|||||||
pub first_id: String,
|
pub first_id: String,
|
||||||
pub last_id: String,
|
pub last_id: String,
|
||||||
pub has_more: bool,
|
pub has_more: bool,
|
||||||
|
pub headers: Option<HashMap<String, String>>,
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
|
use std::collections::HashMap;
|
||||||
|
|
||||||
use crate::impl_builder_methods;
|
use crate::impl_builder_methods;
|
||||||
|
|
||||||
@ -25,6 +26,7 @@ pub struct CreateModerationResponse {
|
|||||||
pub id: String,
|
pub id: String,
|
||||||
pub model: String,
|
pub model: String,
|
||||||
pub results: Vec<ModerationResult>,
|
pub results: Vec<ModerationResult>,
|
||||||
|
pub headers: Option<HashMap<String, String>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Deserialize, Serialize)]
|
#[derive(Debug, Deserialize, Serialize)]
|
||||||
|
@ -87,6 +87,7 @@ pub struct RunObject {
|
|||||||
pub tools: Vec<HashMap<String, String>>,
|
pub tools: Vec<HashMap<String, String>>,
|
||||||
pub file_ids: Vec<String>,
|
pub file_ids: Vec<String>,
|
||||||
pub metadata: HashMap<String, String>,
|
pub metadata: HashMap<String, String>,
|
||||||
|
pub headers: Option<HashMap<String, String>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Deserialize, Serialize)]
|
#[derive(Debug, Deserialize, Serialize)]
|
||||||
@ -96,6 +97,7 @@ pub struct ListRun {
|
|||||||
pub first_id: String,
|
pub first_id: String,
|
||||||
pub last_id: String,
|
pub last_id: String,
|
||||||
pub has_more: bool,
|
pub has_more: bool,
|
||||||
|
pub headers: Option<HashMap<String, String>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Serialize, Clone)]
|
#[derive(Debug, Serialize, Clone)]
|
||||||
@ -138,6 +140,7 @@ pub struct RunStepObject {
|
|||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
pub completed_at: Option<i64>,
|
pub completed_at: Option<i64>,
|
||||||
pub metadata: HashMap<String, String>,
|
pub metadata: HashMap<String, String>,
|
||||||
|
pub headers: Option<HashMap<String, String>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Deserialize, Serialize, Clone)]
|
#[derive(Debug, Deserialize, Serialize, Clone)]
|
||||||
@ -147,4 +150,5 @@ pub struct ListRunStep {
|
|||||||
pub first_id: String,
|
pub first_id: String,
|
||||||
pub last_id: String,
|
pub last_id: String,
|
||||||
pub has_more: bool,
|
pub has_more: bool,
|
||||||
|
pub headers: Option<HashMap<String, String>>,
|
||||||
}
|
}
|
||||||
|
@ -38,6 +38,7 @@ pub struct ThreadObject {
|
|||||||
pub object: String,
|
pub object: String,
|
||||||
pub created_at: i64,
|
pub created_at: i64,
|
||||||
pub metadata: HashMap<String, String>,
|
pub metadata: HashMap<String, String>,
|
||||||
|
pub headers: Option<HashMap<String, String>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Deserialize, Serialize, Clone)]
|
#[derive(Debug, Deserialize, Serialize, Clone)]
|
||||||
|
Reference in New Issue
Block a user