debug: gigachat won't create questions
This commit is contained in:
parent
ae22c06c3a
commit
525d54645c
@ -1,24 +0,0 @@
|
|||||||
name: Deploy
|
|
||||||
run-name: ${{ gitea.actor }} build image and push to container registry
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- 'main'
|
|
||||||
- 'staging'
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
CreateImage:
|
|
||||||
runs-on: [squizstaging]
|
|
||||||
uses: http://gitea.pena/PenaDevops/actions.git/.gitea/workflows/build-image.yml@v1.1.6-p
|
|
||||||
with:
|
|
||||||
runner: squizstaging
|
|
||||||
secrets:
|
|
||||||
REGISTRY_USER: ${{ secrets.REGISTRY_USER }}
|
|
||||||
REGISTRY_PASSWORD: ${{ secrets.REGISTRY_PASSWORD }}
|
|
||||||
DeployService:
|
|
||||||
runs-on: [squizstaging]
|
|
||||||
needs: CreateImage
|
|
||||||
uses: http://gitea.pena/PenaDevops/actions.git/.gitea/workflows/deploy.yml@v1.1.7
|
|
||||||
with:
|
|
||||||
runner: squizstaging
|
|
@ -8,19 +8,19 @@ on:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
CreateImage:
|
CreateImage:
|
||||||
runs-on: [hubstaging]
|
runs-on: [squizstaging]
|
||||||
uses: http://gitea.pena/PenaDevops/actions.git/.gitea/workflows/build-image.yml@v1.1.6-p
|
uses: http://gitea.pena/PenaDevops/actions.git/.gitea/workflows/build-image.yml@v1.1.6-p
|
||||||
with:
|
with:
|
||||||
runner: hubstaging
|
runner: squizstaging
|
||||||
secrets:
|
secrets:
|
||||||
REGISTRY_USER: ${{ secrets.REGISTRY_USER }}
|
REGISTRY_USER: ${{ secrets.REGISTRY_USER }}
|
||||||
REGISTRY_PASSWORD: ${{ secrets.REGISTRY_PASSWORD }}
|
REGISTRY_PASSWORD: ${{ secrets.REGISTRY_PASSWORD }}
|
||||||
DeployService:
|
DeployService:
|
||||||
runs-on: [hubstaging]
|
runs-on: [squizstaging]
|
||||||
needs: CreateImage
|
needs: CreateImage
|
||||||
uses: http://gitea.pena/PenaDevops/actions.git/.gitea/workflows/deploy.yml@v1.1.4-p7
|
uses: http://gitea.pena/PenaDevops/actions.git/.gitea/workflows/deploy.yml@v1.1.4-p7
|
||||||
with:
|
with:
|
||||||
runner: hubstaging
|
runner: squizstaging
|
||||||
actionid: ${{ gitea.run_id }}
|
actionid: ${{ gitea.run_id }}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
FROM gitea.pena/penadevops/container-images/golang:main as build
|
FROM gitea.pena/penadevops/container-images/golang:1.23.8-alpine as build
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
COPY . .
|
COPY . .
|
||||||
RUN go mod download
|
RUN go mod download
|
||||||
|
@ -8,7 +8,7 @@ services:
|
|||||||
IS_PROD_LOG: 'false'
|
IS_PROD_LOG: 'false'
|
||||||
IS_PROD: 'false'
|
IS_PROD: 'false'
|
||||||
POSTGRES_URL: 'host=10.7.0.10 port=5432 user=squiz password=Redalert2 dbname=squiz sslmode=disable'
|
POSTGRES_URL: 'host=10.7.0.10 port=5432 user=squiz password=Redalert2 dbname=squiz sslmode=disable'
|
||||||
KAFKA_BROKER: '10.7.0.6:9092'
|
KAFKA_BROKERS: '10.7.0.6:9092'
|
||||||
KAFKA_TOPIC: 'tariffs'
|
KAFKA_TOPIC: 'tariffs'
|
||||||
QUIZ_ID: quizCnt
|
QUIZ_ID: quizCnt
|
||||||
AMOUNT: 10
|
AMOUNT: 10
|
||||||
@ -23,6 +23,6 @@ services:
|
|||||||
S3_ACCESS_KEY: 5CV77KVDUU9H0II9R24M
|
S3_ACCESS_KEY: 5CV77KVDUU9H0II9R24M
|
||||||
S3_SECRET_KEY: 0W0m8DyvdAKRJnsAy6mB5zndQ7RouJBLhqhtThcu
|
S3_SECRET_KEY: 0W0m8DyvdAKRJnsAy6mB5zndQ7RouJBLhqhtThcu
|
||||||
KAFKA_TOPIC_GIGA_CHAT: gigachat
|
KAFKA_TOPIC_GIGA_CHAT: gigachat
|
||||||
KAFKA_GROUP_GIGA_CHAT: gigachat
|
KAFKA_GROUP_GIGA_CHAT: ""
|
||||||
GIGA_CHAT_API_AUTH_KEY: Y2MzZWUxZDMtZGE5MC00ZTFjLWI5YzItM2ViMTZmMDM0YTkwOmY1NTlkOGM3LWUyNmQtNGUwMC1hODE0LTJlYjQ5NDA5ODdjMQ==
|
GIGA_CHAT_API_AUTH_KEY: Y2MzZWUxZDMtZGE5MC00ZTFjLWI5YzItM2ViMTZmMDM0YTkwOmY1NTlkOGM3LWUyNmQtNGUwMC1hODE0LTJlYjQ5NDA5ODdjMQ==
|
||||||
GIGA_CHAT_API_BASE_URL: "https://gigachat.devices.sberbank.ru/"
|
GIGA_CHAT_API_BASE_URL: "https://gigachat.devices.sberbank.ru/api/v1"
|
||||||
|
@ -104,11 +104,9 @@ func (w *SendToClient) processPendingAnswer(ctx context.Context) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
fmt.Println("ANS")
|
|
||||||
|
|
||||||
for _, key := range pendingAnswers {
|
for _, key := range pendingAnswers {
|
||||||
func() {
|
func() {
|
||||||
fmt.Println("ANS1", key)
|
|
||||||
answerJSON, err := w.redis.GetDel(ctx, key).Result()
|
answerJSON, err := w.redis.GetDel(ctx, key).Result()
|
||||||
if err == redis.Nil {
|
if err == redis.Nil {
|
||||||
return
|
return
|
||||||
@ -120,28 +118,24 @@ func (w *SendToClient) processPendingAnswer(ctx context.Context) {
|
|||||||
defer func() {
|
defer func() {
|
||||||
if r := recover(); r != nil {
|
if r := recover(); r != nil {
|
||||||
w.reportError(nil, fmt.Sprintf("recovering from panic or error setting redis value %v", r))
|
w.reportError(nil, fmt.Sprintf("recovering from panic or error setting redis value %v", r))
|
||||||
fmt.Println("ANS1ERRR", r)
|
|
||||||
_ = w.redis.Set(ctx, key, answerJSON, 0).Err()
|
_ = w.redis.Set(ctx, key, answerJSON, 0).Err()
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
|
||||||
var answer model.Answer
|
var answer model.Answer
|
||||||
err = json.Unmarshal([]byte(answerJSON), &answer)
|
err = json.Unmarshal([]byte(answerJSON), &answer)
|
||||||
fmt.Println("ANS2", err)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
w.reportError(err, "Error unmarshal answer")
|
w.reportError(err, "Error unmarshal answer")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
answerContent, err := wctools.ProcessAnswer(answer.Content)
|
answerContent, err := wctools.ProcessAnswer(answer.Content)
|
||||||
fmt.Println("ANS3", err)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
w.reportError(err, "Error unmarshal answer content")
|
w.reportError(err, "Error unmarshal answer content")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
allAnswersDirty, err := w.dal.WorkerAnsRepo.GetAllAnswersByQuizID(ctx, answer.Session)
|
allAnswersDirty, err := w.dal.WorkerAnsRepo.GetAllAnswersByQuizID(ctx, answer.Session)
|
||||||
fmt.Println("ANS4", err)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
w.reportError(err, "Error getting all answers by quizID")
|
w.reportError(err, "Error getting all answers by quizID")
|
||||||
return
|
return
|
||||||
@ -149,7 +143,6 @@ func (w *SendToClient) processPendingAnswer(ctx context.Context) {
|
|||||||
allAnswers := wctools.CleanNullContent(allAnswersDirty)
|
allAnswers := wctools.CleanNullContent(allAnswersDirty)
|
||||||
|
|
||||||
questionsMap, sortedallAnswers, err := w.dal.QuestionRepo.GetMapQuestions(ctx, allAnswers)
|
questionsMap, sortedallAnswers, err := w.dal.QuestionRepo.GetMapQuestions(ctx, allAnswers)
|
||||||
fmt.Println("ANS5", err)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
w.reportError(err, "Error getting questionsMap")
|
w.reportError(err, "Error getting questionsMap")
|
||||||
return
|
return
|
||||||
@ -160,14 +153,12 @@ func (w *SendToClient) processPendingAnswer(ctx context.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
quizConfig, accountId, err := w.dal.QuizRepo.GetQuizConfig(ctx, answer.QuizId)
|
quizConfig, accountId, err := w.dal.QuizRepo.GetQuizConfig(ctx, answer.QuizId)
|
||||||
fmt.Println("ANS6", err)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
w.reportError(err, "Error getting quiz config")
|
w.reportError(err, "Error getting quiz config")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
quiz, err := w.dal.QuizRepo.GetQuizById(ctx, accountId, answer.QuizId)
|
quiz, err := w.dal.QuizRepo.GetQuizById(ctx, accountId, answer.QuizId)
|
||||||
fmt.Println("ANS60", err, accountId, answer.QuizId)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
w.reportError(err, "Error getting quiz")
|
w.reportError(err, "Error getting quiz")
|
||||||
return
|
return
|
||||||
@ -180,7 +171,6 @@ func (w *SendToClient) processPendingAnswer(ctx context.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
account, privileges, err := w.dal.AccountRepo.GetAccAndPrivilegeByEmail(ctx, accountId)
|
account, privileges, err := w.dal.AccountRepo.GetAccAndPrivilegeByEmail(ctx, accountId)
|
||||||
fmt.Println("ANS7", err)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
w.reportError(err, "Error getting account and privileges by email")
|
w.reportError(err, "Error getting account and privileges by email")
|
||||||
return
|
return
|
||||||
@ -196,7 +186,6 @@ func (w *SendToClient) processPendingAnswer(ctx context.Context) {
|
|||||||
answerContent: answerContent,
|
answerContent: answerContent,
|
||||||
answerTime: answer.CreatedAt,
|
answerTime: answer.CreatedAt,
|
||||||
})
|
})
|
||||||
fmt.Println("ANS8", err, result, privileges)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
w.reportError(err, "Error process answer with privileges")
|
w.reportError(err, "Error process answer with privileges")
|
||||||
return
|
return
|
||||||
@ -226,7 +215,6 @@ type ProcessAnsWithPriv struct {
|
|||||||
func (w *SendToClient) processAnswerWithPrivileges(ctx context.Context, data ProcessAnsWithPriv) (bool, error) {
|
func (w *SendToClient) processAnswerWithPrivileges(ctx context.Context, data ProcessAnsWithPriv) (bool, error) {
|
||||||
|
|
||||||
err := w.notificationCustomer(ctx, data.account, data.privileges)
|
err := w.notificationCustomer(ctx, data.account, data.privileges)
|
||||||
fmt.Println("ANS81", err)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return false, err
|
return false, err
|
||||||
}
|
}
|
||||||
|
@ -18,6 +18,7 @@ import (
|
|||||||
"github.com/go-resty/resty/v2"
|
"github.com/go-resty/resty/v2"
|
||||||
"go.uber.org/zap"
|
"go.uber.org/zap"
|
||||||
"time"
|
"time"
|
||||||
|
"fmt"
|
||||||
)
|
)
|
||||||
|
|
||||||
var zapOptions = []zap.Option{
|
var zapOptions = []zap.Option{
|
||||||
@ -153,6 +154,7 @@ func New(ctx context.Context, cfg initialize.Config, build Build) error {
|
|||||||
// метод для обновления токенов гигачата
|
// метод для обновления токенов гигачата
|
||||||
go gigaChatClient.TokenResearch(ctx)
|
go gigaChatClient.TokenResearch(ctx)
|
||||||
|
|
||||||
|
fmt.Println("INIT GGC WORKER", cfg.KafkaTopicGigaChat)
|
||||||
gigaChatWorker, err := gigachatwc.NewGigaChatTaskScheduler(gigachatwc.Deps{
|
gigaChatWorker, err := gigachatwc.NewGigaChatTaskScheduler(gigachatwc.Deps{
|
||||||
KafkaBrokers: cfg.KafkaBrokers,
|
KafkaBrokers: cfg.KafkaBrokers,
|
||||||
KafkaTopic: cfg.KafkaTopicGigaChat,
|
KafkaTopic: cfg.KafkaTopicGigaChat,
|
||||||
|
@ -10,6 +10,7 @@ import (
|
|||||||
"github.com/twmb/franz-go/pkg/kgo"
|
"github.com/twmb/franz-go/pkg/kgo"
|
||||||
"go.uber.org/zap"
|
"go.uber.org/zap"
|
||||||
"time"
|
"time"
|
||||||
|
"fmt"
|
||||||
)
|
)
|
||||||
|
|
||||||
type GigaChatTaskScheduler struct {
|
type GigaChatTaskScheduler struct {
|
||||||
@ -29,13 +30,15 @@ type Deps struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func NewGigaChatTaskScheduler(deps Deps) (*GigaChatTaskScheduler, error) {
|
func NewGigaChatTaskScheduler(deps Deps) (*GigaChatTaskScheduler, error) {
|
||||||
|
fmt.Println("GGC NEW", deps.KafkaBrokers, deps.KafkaTopic)
|
||||||
client, err := kgo.NewClient(
|
client, err := kgo.NewClient(
|
||||||
kgo.SeedBrokers(deps.KafkaBrokers),
|
kgo.SeedBrokers(deps.KafkaBrokers),
|
||||||
kgo.ConsumerGroup(deps.KafkaGroup),
|
|
||||||
kgo.ConsumeTopics(deps.KafkaTopic),
|
kgo.ConsumeTopics(deps.KafkaTopic),
|
||||||
|
kgo.ConsumerGroup("gigachat1"),
|
||||||
kgo.ConsumeResetOffset(kgo.NewOffset().AfterMilli(time.Now().UnixMilli())),
|
kgo.ConsumeResetOffset(kgo.NewOffset().AfterMilli(time.Now().UnixMilli())),
|
||||||
)
|
)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
fmt.Println("GCCER", err)
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -66,8 +69,10 @@ func (r *GigaChatTaskScheduler) Start(ctx context.Context) {
|
|||||||
for {
|
for {
|
||||||
select {
|
select {
|
||||||
case <-ticker.C:
|
case <-ticker.C:
|
||||||
|
fmt.Println("FETCHED GGC")
|
||||||
r.fetchMessages(ctx)
|
r.fetchMessages(ctx)
|
||||||
case <-ctx.Done():
|
case <-ctx.Done():
|
||||||
|
fmt.Println("GCC DONE")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -75,6 +80,8 @@ func (r *GigaChatTaskScheduler) Start(ctx context.Context) {
|
|||||||
|
|
||||||
func (r *GigaChatTaskScheduler) fetchMessages(ctx context.Context) {
|
func (r *GigaChatTaskScheduler) fetchMessages(ctx context.Context) {
|
||||||
fetches := r.kafkaClient.PollFetches(ctx)
|
fetches := r.kafkaClient.PollFetches(ctx)
|
||||||
|
|
||||||
|
fmt.Println("GGC CONS", fetches)
|
||||||
iter := fetches.RecordIter()
|
iter := fetches.RecordIter()
|
||||||
|
|
||||||
for !iter.Done() {
|
for !iter.Done() {
|
||||||
@ -85,6 +92,7 @@ func (r *GigaChatTaskScheduler) fetchMessages(ctx context.Context) {
|
|||||||
r.logger.Error("failed to unmarshal kafka message", zap.ByteString("value", record.Value), zap.Error(err))
|
r.logger.Error("failed to unmarshal kafka message", zap.ByteString("value", record.Value), zap.Error(err))
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
fmt.Println("GGC MES", msg)
|
||||||
|
|
||||||
r.handleMessage(ctx, msg)
|
r.handleMessage(ctx, msg)
|
||||||
}
|
}
|
||||||
@ -113,6 +121,7 @@ func (r *GigaChatTaskScheduler) handleMessage(ctx context.Context, msg MessageGi
|
|||||||
// можем ли мы скипать вопросы с которыми у нас произошла ошибка
|
// можем ли мы скипать вопросы с которыми у нас произошла ошибка
|
||||||
for i := 0; i < 10; i++ {
|
for i := 0; i < 10; i++ {
|
||||||
updJson, err = r.gigaChatClient.SendMsg(ctx, audience, question)
|
updJson, err = r.gigaChatClient.SendMsg(ctx, audience, question)
|
||||||
|
fmt.Println("GGC ANS", updJson, err)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
if err = json.Unmarshal([]byte(updJson), &resp); err == nil {
|
if err = json.Unmarshal([]byte(updJson), &resp); err == nil {
|
||||||
question.Title = resp.Title
|
question.Title = resp.Title
|
||||||
|
@ -44,7 +44,6 @@ func (w *CheckWorker) Start(ctx context.Context) {
|
|||||||
for {
|
for {
|
||||||
select {
|
select {
|
||||||
case <-ticker.C:
|
case <-ticker.C:
|
||||||
fmt.Println("CHECK")
|
|
||||||
w.deleteExpired(ctx)
|
w.deleteExpired(ctx)
|
||||||
case <-ctx.Done():
|
case <-ctx.Done():
|
||||||
fmt.Println("Check worker terminated")
|
fmt.Println("Check worker terminated")
|
||||||
|
@ -3,7 +3,6 @@ package shortstat
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"database/sql"
|
"database/sql"
|
||||||
"fmt"
|
|
||||||
"gitea.pena/SQuiz/common/dal"
|
"gitea.pena/SQuiz/common/dal"
|
||||||
"gitea.pena/SQuiz/worker/internal/workers"
|
"gitea.pena/SQuiz/worker/internal/workers"
|
||||||
"time"
|
"time"
|
||||||
@ -26,9 +25,7 @@ func New(d *dal.DAL, p time.Duration) *ShortStat {
|
|||||||
// Start method for starting worker with long polling from postgres
|
// Start method for starting worker with long polling from postgres
|
||||||
func (t *ShortStat) Start(ctx context.Context) {
|
func (t *ShortStat) Start(ctx context.Context) {
|
||||||
t.w.Start(ctx, func(ctx context.Context) error {
|
t.w.Start(ctx, func(ctx context.Context) error {
|
||||||
fmt.Println("SHORTSTAT1")
|
|
||||||
if err := t.d.WorkerRepo.WorkerStatProcess(ctx); err != nil {
|
if err := t.d.WorkerRepo.WorkerStatProcess(ctx); err != nil {
|
||||||
fmt.Println("SHORTSTAT2", err)
|
|
||||||
if err != sql.ErrNoRows {
|
if err != sql.ErrNoRows {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
BIN
main
BIN
main
Binary file not shown.
Loading…
Reference in New Issue
Block a user