sim_codec_chat/providers/
openai.rs1mod common;
8mod decode;
9mod encode;
10mod runtime;
11
12pub(in crate::providers) use decode::decode_openai_request_for_codec;
13pub use decode::{decode_openai_request, decode_openai_response, decode_openai_stream};
14pub(in crate::providers) use encode::encode_openai_response_for_codec;
15pub use encode::{encode_openai_request, encode_openai_response};
16pub use runtime::{OpenAiCodec, OpenAiCodecLib};
17
18use sim_kernel::{CodecId, Symbol};
19
20pub(super) const OPENAI_CODEC_ID: CodecId = CodecId(0);
21
22#[derive(Clone, Debug, PartialEq, Eq)]
24pub struct OpenAiCodecOptions {
25 pub model: String,
27 pub stream: bool,
29 pub tools: bool,
31}
32
33impl OpenAiCodecOptions {
34 pub fn new(model: impl Into<String>, stream: bool, tools: bool) -> Self {
36 Self {
37 model: model.into(),
38 stream,
39 tools,
40 }
41 }
42}
43
44pub type OpenAiRequestOptions = OpenAiCodecOptions;
46
47pub fn openai_codec_symbol() -> Symbol {
49 Symbol::qualified("codec", "openai")
50}