module

Crig::Providers::Internal::OpenAICompatible

Class methods

append_tool_call_arguments(tool_call : Crig::RawStreamingToolCall, chunk : String) : Crig::RawStreamingToolCall
Source
convert_to_raw_choice(item : StreamItem, return_type : T.class) : Crig::RawStreamingChoice(T) forall T

Convert a StreamItem into a RawStreamingChoice(T). Callers use raw_choices = items.map { |item| OpenAICompatible.convert(item) }

Source
finalize_completed_streaming_tool_call(tool_call : Crig::RawStreamingToolCall) : Crig::RawStreamingToolCall
Source
finalize_pending_tool_call(tool_call : Crig::RawStreamingToolCall) : Crig::RawStreamingToolCall | Nil
Source
process_compatible_sse_stream(text : String, profile)

Common SSE stream processor shared by all OpenAI Chat Completions-compatible providers. Each provider supplies a profile with normalize_chunk and build_final_response callables to handle provider-specific chunk parsing.

Returns an array of intermediate StreamItems plus the accumulated usage value. Callers convert StreamItems to their concrete RawStreamingChoice(T) and append build_final_response(usage) as the final response. ameba:disable Metrics/CyclomaticComplexity

Source
should_evict_distinct_named_tool_call(existing : Crig::RawStreamingToolCall, incoming : CompatibleToolCallChunk) : Bool
Source
take_finalized_tool_calls(tool_calls : Hash(Int32, Crig::RawStreamingToolCall)) : Array(Crig::RawStreamingToolCall)
Source

Nested types