mod common;
mod decode;
mod encode;
mod runtime;
pub(in crate::providers) use decode::decode_openai_request_for_codec;
pub use decode::{decode_openai_request, decode_openai_response, decode_openai_stream};
pub(in crate::providers) use encode::encode_openai_response_for_codec;
pub use encode::{encode_openai_request, encode_openai_response};
pub use runtime::{OpenAiCodec, OpenAiCodecLib};
use sim_kernel::{CodecId, Symbol};
pub(super) const OPENAI_CODEC_ID: CodecId = CodecId(0);
#[derive(Clone, Debug, PartialEq, Eq)]
pub struct OpenAiCodecOptions {
pub model: String,
pub stream: bool,
pub tools: bool,
}
impl OpenAiCodecOptions {
pub fn new(model: impl Into<String>, stream: bool, tools: bool) -> Self {
Self {
model: model.into(),
stream,
tools,
}
}
}
pub type OpenAiRequestOptions = OpenAiCodecOptions;
pub fn openai_codec_symbol() -> Symbol {
Symbol::qualified("codec", "openai")
}