getResponse method

  1. @override
Future<ChatResponse> getResponse(
  1. String responseId, {
  2. List<String>? include,
  3. int? startingAfter,
  4. bool stream = false,
})
override

Retrieve a model response by ID

This allows you to fetch a previously created response using its ID. Useful for stateful conversations and response chaining.

Implementation

@override
Future<ChatResponse> getResponse(
  String responseId, {
  List<String>? include,
  int? startingAfter,
  bool stream = false,
}) async {
  var endpoint = '$responsesEndpoint/$responseId';

  // Build query parameters
  final queryParams = <String, String>{};
  if (include != null && include.isNotEmpty) {
    queryParams['include'] = include.join(',');
  }
  if (startingAfter != null) {
    queryParams['starting_after'] = startingAfter.toString();
  }
  if (stream) {
    queryParams['stream'] = stream.toString();
  }

  // Append query parameters to endpoint
  if (queryParams.isNotEmpty) {
    final queryString = queryParams.entries
        .map((e) =>
            '${Uri.encodeComponent(e.key)}=${Uri.encodeComponent(e.value)}')
        .join('&');
    endpoint = '$endpoint?$queryString';
  }

  final responseData = await client.get(endpoint);
  return _parseResponse(responseData);
}