openai_compat library

OpenAI 互換 Chat Completions API のリクエスト構築・レスポンス解析ヘルパー。

import 'package:ai_box/openai_compat.dart'; して使う。 OpenAI 互換の各プロバイダーパッケージ (chatgpt_box / deepseek_box / grok_box / minimax_box / openrouter_box)が 共有する実装で、アプリから直接使う想定ではない。

画像・音声・ファイル・ツール呼び出し・構造化出力を raw JSON として 組み立てる(freezed のコード生成に依存しない)。

Functions

buildOpenAiBody(LLMCompletionRequest request, {required String maxTokensKey}) Map<String, dynamic>
LLMCompletionRequest を OpenAI 互換のリクエストボディに変換する。
openAiChunksFromEvents(Stream<Map<String, dynamic>> events, {String? provider}) Stream<LLMStreamChunk>
OpenAI 互換のストリーミングイベント(chat.completion.chunk)列を LLMStreamChunk 列へ変換する。
parseOpenAiResponse(Map<String, dynamic> data) LLMCompletionResponse
OpenAI 互換のレスポンスボディを LLMCompletionResponse に変換する。
postOpenAiJson({required String url, required String apiKey, required String provider, required Map<String, dynamic> body, Map<String, String> extraHeaders = const {}}) Future<Map<String, dynamic>>
OpenAI 互換 API に POST し、JSON ボディを返す。失敗時は LLMException
streamOpenAiCompletions({required String url, required String apiKey, required String provider, required LLMCompletionRequest request, required String maxTokensKey, bool includeUsage = false, Map<String, String> extraHeaders = const {}}) Stream<LLMStreamChunk>
OpenAI 互換 API へ stream: true で POST し、LLMStreamChunk を流す。