answerAskUserTool static method

Future<Stream<SSEModel>?> answerAskUserTool(
  1. String messageId,
  2. List<AskUserChoice> options,
  3. String? answer
)

Implementation

static Future<Stream<SSEModel>?> answerAskUserTool(
  String messageId,
  List<AskUserChoice> options,
  String? answer,
) async {
  ChatController chatController = Get.find();
  String? assistantId = chatController.assistant.value?.id;
  Conversation? conversation = chatController.conversation.value;
  if (assistantId == null || conversation == null) return null;
  PupauMessage message = chatController.messages.firstWhere(
    (element) => element.id == messageId,
  );
  bool isMarketplace = chatController.isMarketplace;
  final Map<String, String>? authParams = chatController.pupauConfig?.authHeaders;
  if (authParams == null) return null;

  String url = ApiUrls.toolQuestionUrl(
    assistantId,
    conversation.id,
    message.id,
    isMarketplace: isMarketplace,
  );
  Stream<SSEModel> messageSendStream = SSEClient.subscribeToSSE(
    method: SSERequestType.POST,
    url: url,
    header: {
      ...authParams,
      "Conversation-Token": conversation.token,
      "Content-type": "Application/json",
    },
    body: {"request": generateAnswerBody(options, answer)},
  );
  return messageSendStream;
}