Skip to content

experimental_StreamData,If the string is too long, it will be truncated. #962

Closed
@zandko

Description

@zandko

Description

data.append({ 'sources': functionResponse.sources }); If the string is too long, it will be truncated.

Code example

  const data = new experimental_StreamData();

    const stream = OpenAIStream(response, {
      experimental_onToolCall: async (
        call: ToolCallPayload,
        appendToolCallMessage,
      ) => {

       // ...

        for (const toolCall of call.tools) {

          const functionName = toolCall.func.name;
          const functionToCall = availableFunctions[functionName];

          const functionArgs = JSON.parse(toolCall.func.arguments as unknown as string);
          const functionResponse = await functionToCall(parseNestedJSON(functionArgs));

          if (functionResponse.sources !== 'NONE') {
            data.append({ 'sources': functionResponse.sources });
          }

          const newMessages = appendToolCallMessage({
            tool_call_id: toolCall.id,
            function_name: functionName,
            tool_call_result: functionResponse.result,
          });

          return openai.chat.completions.create({
            ...defaultOptions,
            messages: [...messages, ...newMessages],
            model: LanguageModel.GPT3_5_16K,
            stream: true,
            tools,
            temperature: 0.2,
            tool_choice: 'auto',
          });
        }
      },
      onCompletion(completion) {
        console.log('completion', completion);
      },
      onFinal(completion) {
        data.close();
      },
      experimental_streamData: true,
    });

    return new StreamingTextResponse(stream, {
      headers: { ...ResponseHeaders }
    }, data);

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    ai/uibugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions