feat: add dynamic system prompt for car image analysis
This commit is contained in:
parent
70e8a6877c
commit
7b685ad99e
@ -4,6 +4,13 @@ const getGigaToken = async () => {
|
|||||||
return data.features['dry-wash-bh'].GIGA_TOKEN.value
|
return data.features['dry-wash-bh'].GIGA_TOKEN.value
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const getSystemPrompt = async () => {
|
||||||
|
const response = await fetch('https://admin.bro-js.ru/api/config/v1/dev')
|
||||||
|
const data = await response.json()
|
||||||
|
return data.features['dry-wash-bh'].SYSTEM_PROMPT.value
|
||||||
|
}
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
getGigaToken
|
getGigaToken,
|
||||||
|
getSystemPrompt
|
||||||
}
|
}
|
@ -5,7 +5,7 @@ const { MasterModel } = require('./model/master')
|
|||||||
const { OrderModel } = require('./model/order')
|
const { OrderModel } = require('./model/order')
|
||||||
const { OrderCarImgModel } = require('./model/order.car-img')
|
const { OrderCarImgModel } = require('./model/order.car-img')
|
||||||
const { orderStatus } = require('./model/const')
|
const { orderStatus } = require('./model/const')
|
||||||
const { getGigaToken } = require('./get-token')
|
const { getGigaToken, getSystemPrompt } = require('./get-token')
|
||||||
|
|
||||||
const isValidPhoneNumber = (value) => /^(\+)?\d{9,15}/.test(value)
|
const isValidPhoneNumber = (value) => /^(\+)?\d{9,15}/.test(value)
|
||||||
const isValidCarNumber = (value) => /^[авекмнорстух][0-9]{3}[авекмнорстух]{2}[0-9]{2,3}$/i.test(value)
|
const isValidCarNumber = (value) => /^[авекмнорстух][0-9]{3}[авекмнорстух]{2}[0-9]{2,3}$/i.test(value)
|
||||||
@ -350,25 +350,7 @@ const analyzeImage = async (fileId, token) => {
|
|||||||
messages: [
|
messages: [
|
||||||
{
|
{
|
||||||
role: "system",
|
role: "system",
|
||||||
content:
|
content: (await getSystemPrompt()) ?? `Ты эксперт по оценке степени загрязнения автомобилей. Твоя задача — анализировать фотографии машин и определять степень их загрязнения. ВАЖНО: Твой ответ ДОЛЖЕН быть СТРОГО в формате JSON и содержать ТОЛЬКО следующие поля: { "value": число от 0 до 10 (целое или с одним знаком после запятой), "description": "текстовое описание на русском языке" } Правила: 1. Поле "value": - Должно быть числом от 0 до 10 - 0 = машина абсолютно чистая - 10 = машина максимально грязная 2. Поле "description": - Должно содержать 2-3 предложения на русском языке - Обязательно указать конкретные признаки загрязнения - Объяснить почему выставлен именно такой балл НЕ ДОБАВЛЯЙ никаких дополнительных полей или комментариев вне JSON структуры. НЕ ИСПОЛЬЗУЙ markdown форматирование. ОТВЕТ ДОЛЖЕН БЫТЬ ВАЛИДНЫМ JSON. Если на фотографии нет одной машины, то оценка должна быть 0 и в описании должно быть указано, почему не удалось оценить.`,
|
||||||
`Ты эксперт по оценке степени загрязнения автомобилей. Твоя задача — анализировать фотографии машин и определять степень их загрязнения.
|
|
||||||
ВАЖНО: Твой ответ ДОЛЖЕН быть СТРОГО в формате JSON и содержать ТОЛЬКО следующие поля:
|
|
||||||
{
|
|
||||||
"value": число от 0 до 10 (целое или с одним знаком после запятой),
|
|
||||||
"description": "текстовое описание на русском языке"
|
|
||||||
}
|
|
||||||
Правила:
|
|
||||||
1. Поле "value":
|
|
||||||
- Должно быть числом от 0 до 10
|
|
||||||
- 0 = машина абсолютно чистая
|
|
||||||
- 10 = машина максимально грязная
|
|
||||||
2. Поле "description":
|
|
||||||
- Должно содержать 2-3 предложения на русском языке
|
|
||||||
- Обязательно указать конкретные признаки загрязнения
|
|
||||||
- Объяснить почему выставлен именно такой балл
|
|
||||||
НЕ ДОБАВЛЯЙ никаких дополнительных полей или комментариев вне JSON структуры.
|
|
||||||
НЕ ИСПОЛЬЗУЙ markdown форматирование.
|
|
||||||
ОТВЕТ ДОЛЖЕН БЫТЬ ВАЛИДНЫМ JSON.`,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
role: "user",
|
role: "user",
|
||||||
|
Loading…
Reference in New Issue
Block a user