batch_mode_batch_schema/
load_batch_files.rs

1// ---------------- [ File: src/load_batch_files.rs ]
2crate::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}