Open jeevanions opened 1 month ago
Hello thank you for reporting, do you have the actual raw content in msg
to help debugging?
For me it happens when enabling the pretty recently introduced stream_options.include_usage
option. The final msg
content looks like this:
{
"id":"chatcmpl-<id here>",
"object":"chat.completion.chunk",
"created":1718756652,
"model":"gpt-4-0613",
"system_fingerprint":null,
"choices":[
],
"usage":{
"prompt_tokens":308,
"completion_tokens":68,
"total_tokens":376
}
}
Are there plans to address this?
@thomashibbard thank you for the details, this should help with the investigation.
In the JSON payload you attached, there are no choices. Is that the complete payload?
If stream_options.include_usage
triggers this, it could be due to some versions that need updating. I will have to investigate.
@st3w4r Yeah exactly, there are no choices—I think—because the final received chunk is just token usage information, and so it doesn't have any of the choices/delta/etc included in the rest of the stream for composing responses.
I see, indeed if the last chunk have no choices we could just skip it. I’m wondering if there is something else that could help differentiate this chunk.
A curl command could confirm this behavior it.
I think the last chunk still needs to be processed so the usage can be accessed. Maybe it could emit a done
or usage
event. I'm getting a little out of my depth here, but would something like this be possible
function process() {
// Create an instance of the handler
const openAiHandler = new OpenAiHandler(mode);
// Process the stream.
const entityStream = openAiHandler.process(stream);
// Create an entity with the schema to validate the data
const entityPostcode = new Entity("postcodes", PostcodeSchema);
// Parse the stream to an entity, using the schema to validate the data
const postcodeEntityStream = entityPostcode.genParseArray(entityStream);
postcodeEntityStream.on('usage', saveUsageToDb)
return postcodeEntityStream
}
I am using Azure OpenAI and trying to use this library for streaming the json object. Getting this error
I tried to fix it like this but did not work![Screenshot 2024-06-08 at 19 35 58](https://github.com/st3w4r/openai-partial-stream/assets/95138087/6f22c319-4e56-40b3-a080-e66dcec253eb)