grafana-openai-monitoring-with-streaming
This is a forked version of grafana-openai-monitoring. This library extends the chat_v2.monitor and supports requests with streaming response.
It's build in typescript and provides types
This library currently tracks
openai.chat.completions.create
openai.images.generate
openai.images.edit
openai.images.createVariation
Installation
npm install grafana-openai-monitoring-with-streaming
Usage
import { monitor } from 'grafana-openai-monitoring-with-streaming/dist'
import OpenAI from 'openai'
const openai = new OpenAI({
});
monitor(openai, {
metrics_url: 'https://...',
logs_url: 'https://...',
metrics_username: 12345,
logs_username: 12345,
access_token: "...",
log_prompt: true,
log_response: true
});
const result = await openai.chat.completions.create({
messages: [{ role: 'user', content: 'Say this is a test' }],
model: 'gpt-3.5-turbo',
});
console.log(result)
const result = await openai.chat.completions.create({
messages: [{ role: 'user', content: 'Say this is a test' }],
model: 'gpt-3.5-turbo',
stream: true
});
for await(const chunk of result){
console.log(chunk.choices[0].delta.content)
}
Overwrite model pricing
monitor(openai, {
metrics_url: 'https://...',
logs_url: 'https://...',
metrics_username: 12345,
logs_username: 12345,
access_token: "...",
log_prompt: true,
log_response: true,
overwrite_chat_model_price: {
"gpt-4o": [10, 30],
"new-gpt-model": [0.1, 0.1]
},
overwrite_image_model_price: {
"dall-e-3": {
"hd": {
"1024x1024": 0.04
}
}
}
});
Build
To build the library locally run following command. This generates a /dist
folder
npm run build