Comments (7)
Hello thank you for reporting, do you have the actual raw content in msg
to help debugging?
from openai-partial-stream.
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
}
}
from openai-partial-stream.
Are there plans to address this?
from openai-partial-stream.
@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.
from openai-partial-stream.
@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.
from openai-partial-stream.
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.
from openai-partial-stream.
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
}
from openai-partial-stream.
Related Issues (7)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from openai-partial-stream.