added sql for gigachat
This commit is contained in:
parent
ad4095b7c1
commit
8161c7fddb
@ -1095,3 +1095,11 @@ ORDER BY (q.session != '') ASC, --без сессии первые потом с
|
|||||||
-- name: GetQuestionsAICount :one
|
-- name: GetQuestionsAICount :one
|
||||||
SELECT COUNT(*) AS count FROM question WHERE quiz_id = $1 AND (session = $2 OR session = '') AND deleted = FALSE;
|
SELECT COUNT(*) AS count FROM question WHERE quiz_id = $1 AND (session = $2 OR session = '') AND deleted = FALSE;
|
||||||
|
|
||||||
|
-- name: CreateQuizAudience :one
|
||||||
|
INSERT INTO gigachatAudience (QuizID, Sex, Age) VALUES ($1, $2, $3) RETURNING ID;
|
||||||
|
|
||||||
|
-- name: GetQuizAudience :many
|
||||||
|
SELECT * FROM gigachatAudience WHERE QuizID = $1 AND Deleted = FALSE;
|
||||||
|
|
||||||
|
-- name: DeleteQuizAudience :exec
|
||||||
|
UPDATE gigachatAudience set Deleted = TRUE WHERE QuizID = $1;
|
||||||
|
1
dal/schema/000018_init.down.sql
Normal file
1
dal/schema/000018_init.down.sql
Normal file
@ -0,0 +1 @@
|
|||||||
|
DROP TABLE IF EXISTS gigachatAudience;
|
9
dal/schema/000018_init.up.sql
Normal file
9
dal/schema/000018_init.up.sql
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
CREATE TABLE IF NOT EXISTS gigachatAudience (
|
||||||
|
ID BIGSERIAL UNIQUE NOT NULL PRIMARY KEY,
|
||||||
|
QuizID BIGINT NOT NULL,
|
||||||
|
Sex BOOLEAN NOT NULL,
|
||||||
|
Age VARCHAR(5) NOT NULL,
|
||||||
|
Deleted BOOLEAN NOT NULL DEFAULT FALSE,
|
||||||
|
CreatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
CONSTRAINT fk_quiz FOREIGN KEY (QuizID) REFERENCES quiz(ID)
|
||||||
|
);
|
49
model/gigachat.go
Normal file
49
model/gigachat.go
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
package model
|
||||||
|
|
||||||
|
import (
|
||||||
|
"errors"
|
||||||
|
)
|
||||||
|
|
||||||
|
type GigaChatMessage struct {
|
||||||
|
Role string `json:"role"`
|
||||||
|
Content string `json:"content"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type GigaChatRequest struct {
|
||||||
|
Model string `json:"model"`
|
||||||
|
Stream bool `json:"stream"`
|
||||||
|
UpdateInterval int `json:"update_interval"`
|
||||||
|
Messages []GigaChatMessage `json:"messages"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type GigaChatResponse struct {
|
||||||
|
Choices []struct {
|
||||||
|
Message struct {
|
||||||
|
Role string `json:"role"`
|
||||||
|
Content string `json:"content"`
|
||||||
|
} `json:"message"`
|
||||||
|
} `json:"choices"`
|
||||||
|
}
|
||||||
|
|
||||||
|
const CreatePrompt = `Ты маркетолог и копирайтер. Твоя задача — переформулировать маркетинговый вопрос так, чтобы он лучше подходил определённой целевой аудитории по полу и возрасту.
|
||||||
|
Ответ должен строго состоять из двух строк:
|
||||||
|
|
||||||
|
{
|
||||||
|
"title": "<переформулированный заголовок>",
|
||||||
|
"description": "<переформулированное описание>"
|
||||||
|
}
|
||||||
|
|
||||||
|
Я напишу возраст, пол, заголовок и описание вопроса, а ты вернёшь только отформатированный результат.`
|
||||||
|
|
||||||
|
var ReworkQuestionPrompt string = "%s %s пол.\n%s\n%s"
|
||||||
|
|
||||||
|
var EmptyResponseErrorGigaChat = errors.New("empty response from GigaChat try again")
|
||||||
|
|
||||||
|
type GigaChatAudience struct {
|
||||||
|
ID int64 `json:"id"`
|
||||||
|
QuizID int32 `json:"quiz_id"`
|
||||||
|
Sex bool `json:"sex"` // false - female, true - male
|
||||||
|
Age string `json:"age"`
|
||||||
|
Deleted bool `json:"deleted"`
|
||||||
|
CreatedAt int64 `json:"created_at"`
|
||||||
|
}
|
@ -36,6 +36,8 @@ packages:
|
|||||||
- "./dal/schema/000016_init.down.sql"
|
- "./dal/schema/000016_init.down.sql"
|
||||||
- "./dal/schema/000017_init.up.sql"
|
- "./dal/schema/000017_init.up.sql"
|
||||||
- "./dal/schema/000017_init.down.sql"
|
- "./dal/schema/000017_init.down.sql"
|
||||||
|
- "./dal/schema/000018_init.up.sql"
|
||||||
|
- "./dal/schema/000018_init.down.sql"
|
||||||
engine: "postgresql"
|
engine: "postgresql"
|
||||||
emit_json_tags: true
|
emit_json_tags: true
|
||||||
emit_db_tags: true
|
emit_db_tags: true
|
||||||
|
Loading…
Reference in New Issue
Block a user