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
|
||||
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/000017_init.up.sql"
|
||||
- "./dal/schema/000017_init.down.sql"
|
||||
- "./dal/schema/000018_init.up.sql"
|
||||
- "./dal/schema/000018_init.down.sql"
|
||||
engine: "postgresql"
|
||||
emit_json_tags: true
|
||||
emit_db_tags: true
|
||||
|
Loading…
Reference in New Issue
Block a user