use super::AiClient;
use crate::types::{AiLibError, ChatCompletionRequest, ChatCompletionResponse};
pub async fn chat_completion_batch(
client: &AiClient,
requests: Vec<ChatCompletionRequest>,
concurrency_limit: Option<usize>,
) -> Result<Vec<Result<ChatCompletionResponse, AiLibError>>, AiLibError> {
client
.chat_provider
.batch(requests, concurrency_limit)
.await
}
pub async fn chat_completion_batch_smart(
client: &AiClient,
requests: Vec<ChatCompletionRequest>,
) -> Result<Vec<Result<ChatCompletionResponse, AiLibError>>, AiLibError> {
let concurrency_limit = if requests.len() <= 3 { None } else { Some(10) };
chat_completion_batch(client, requests, concurrency_limit).await
}