batch_mode_batch_schema/
load_batch_files.rs1crate::ix!();
3
4pub async fn load_input_file(path: impl AsRef<Path>)
5 -> Result<BatchInputData, JsonParseError>
6{
7 info!("loading input file: {:?}", path.as_ref());
8
9 let file = File::open(path).await?;
10 let reader = BufReader::new(file);
11 let mut lines = reader.lines();
12
13 let mut requests = Vec::new();
14
15 while let Some(line) = lines.next_line().await? {
16 let request: GptBatchAPIRequest = serde_json::from_str(&line)?;
17 requests.push(request);
18 }
19
20 Ok(BatchInputData::new(requests))
21}
22
23pub async fn load_error_file(path: impl AsRef<Path>)
24 -> Result<BatchErrorData, JsonParseError>
25{
26 info!("loading error file: {:?}", path.as_ref());
27
28 let file = File::open(path).await?;
29 let reader = BufReader::new(file);
30 let mut lines = reader.lines();
31
32 let mut responses = Vec::new();
33
34 while let Some(line) = lines.next_line().await? {
35 let response_record: BatchResponseRecord = serde_json::from_str(&line)?;
36 responses.push(response_record);
37 }
38
39 Ok(BatchErrorData::new(responses))
40}
41
42pub async fn load_output_file(path: impl AsRef<Path>)
43 -> Result<BatchOutputData, JsonParseError>
44{
45 info!("loading output file: {:?}", path.as_ref());
46
47 let file = File::open(path).await?;
48 let reader = BufReader::new(file);
49 let mut lines = reader.lines();
50
51 let mut responses = Vec::new();
52
53 while let Some(line) = lines.next_line().await? {
54 let response_record: BatchResponseRecord = serde_json::from_str(&line)?;
55 responses.push(response_record);
56 }
57
58 Ok(BatchOutputData::new(responses))
59}