add fix
This commit is contained in:
parent
143ad8ebac
commit
6d8591eeb1
@ -1,3 +1,3 @@
|
|||||||
|
|
||||||
|
|
||||||
GEMINI_TOKENS_LIMIT: int = 10_000
|
GEMINI_TOKENS_LIMIT: int = 3_000
|
@ -7,7 +7,7 @@ ANALYTIC_PROMT = """
|
|||||||
Ты получаешь json с такими полями
|
Ты получаешь json с такими полями
|
||||||
{
|
{
|
||||||
chats: [
|
chats: [
|
||||||
"chat_id": integer
|
"slice_id": UUID4
|
||||||
"messages": [
|
"messages": [
|
||||||
{
|
{
|
||||||
"user_id: integer,
|
"user_id: integer,
|
||||||
@ -38,7 +38,7 @@ messages - это срез диалога в чате телеграмма.
|
|||||||
success: [
|
success: [
|
||||||
{
|
{
|
||||||
"user_id": integer,
|
"user_id": integer,
|
||||||
"chat_id": integer,
|
"slice_id": integer,
|
||||||
"reason": string
|
"reason": string
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
from pydantic import BaseModel, PositiveInt, NegativeInt
|
from pydantic import UUID4, PositiveInt, NegativeInt
|
||||||
|
|
||||||
from src.schemas import MessageFromChatSchema, BaseModelWithSerializeDatetime
|
from src.schemas import MessageFromChatSchema, BaseModelWithSerializeDatetime
|
||||||
|
|
||||||
|
|
||||||
class ChatMessageSchema(BaseModelWithSerializeDatetime):
|
class ChatMessageSchema(BaseModelWithSerializeDatetime):
|
||||||
chat_id: int
|
slice_id: UUID4
|
||||||
messages: list[MessageFromChatSchema]
|
messages: list[MessageFromChatSchema]
|
||||||
|
|
||||||
|
|
||||||
@ -14,7 +14,7 @@ class FullRequestForGeminiSchema(BaseModelWithSerializeDatetime):
|
|||||||
|
|
||||||
class SuccessChatFromAiSchema(BaseModelWithSerializeDatetime):
|
class SuccessChatFromAiSchema(BaseModelWithSerializeDatetime):
|
||||||
user_id: PositiveInt | None
|
user_id: PositiveInt | None
|
||||||
chat_id: NegativeInt | None
|
slice_id: UUID4 | None
|
||||||
reason: str | None
|
reason: str | None
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
|
|
||||||
from faststream.rabbit import RabbitBroker, RabbitExchange, ExchangeType, RabbitQueue
|
from faststream.rabbit import RabbitBroker, RabbitExchange, ExchangeType, RabbitQueue
|
||||||
|
|
||||||
|
from src.gemini_sdk.schemas import ResponseFromGeminiSchema
|
||||||
|
|
||||||
url = "amqp://test:test@localhost:9072/"
|
url = "amqp://test:test@localhost:9072/"
|
||||||
|
|
||||||
@ -19,6 +20,9 @@ base_exchange = RabbitExchange(
|
|||||||
base_queue = RabbitQueue(
|
base_queue = RabbitQueue(
|
||||||
name="base_queue",
|
name="base_queue",
|
||||||
)
|
)
|
||||||
|
success_queue = RabbitQueue(
|
||||||
|
name="success_queue",
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
message_subscriber = broker.subscriber(
|
message_subscriber = broker.subscriber(
|
||||||
@ -26,7 +30,15 @@ message_subscriber = broker.subscriber(
|
|||||||
exchange=base_exchange,
|
exchange=base_exchange,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
success_publisher = broker.publisher(
|
||||||
|
queue=success_queue,
|
||||||
|
exchange=base_exchange,
|
||||||
|
schema=ResponseFromGeminiSchema,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
async def init_queue_and_publisher():
|
async def init_queue_and_publisher():
|
||||||
await broker.declare_exchange(base_exchange)
|
await broker.declare_exchange(base_exchange)
|
||||||
await broker.declare_queue(base_queue)
|
await broker.declare_queue(base_queue)
|
||||||
|
await broker.declare_queue(success_queue)
|
||||||
|
|
||||||
|
@ -32,4 +32,5 @@ class MessageFromChatSchema(BaseModelWithSerializeDatetime):
|
|||||||
|
|
||||||
|
|
||||||
class MessagesForSendToWorkersSchema(BaseModelWithSerializeDatetime):
|
class MessagesForSendToWorkersSchema(BaseModelWithSerializeDatetime):
|
||||||
|
slice_id: UUID4
|
||||||
messages: list[MessageFromChatSchema]
|
messages: list[MessageFromChatSchema]
|
@ -1,7 +1,8 @@
|
|||||||
from time import sleep
|
from time import sleep
|
||||||
|
|
||||||
from src.gemini_sdk.schemas import ChatMessageSchema
|
from src.gemini_sdk.schemas import ChatMessageSchema, ResponseFromGeminiSchema
|
||||||
from src.gemini_sdk.service import gemini_helper
|
from src.gemini_sdk.service import gemini_helper
|
||||||
|
from src.rmq.connect import success_publisher
|
||||||
from src.schemas import MessagesForSendToWorkersSchema
|
from src.schemas import MessagesForSendToWorkersSchema
|
||||||
from src.service.limter_checker import check_current_token_limit
|
from src.service.limter_checker import check_current_token_limit
|
||||||
from src.service.storage import MESSAGES_STORAGE_SCHEMA
|
from src.service.storage import MESSAGES_STORAGE_SCHEMA
|
||||||
@ -9,9 +10,9 @@ from src.service.storage import MESSAGES_STORAGE_SCHEMA
|
|||||||
|
|
||||||
async def handle_message_service(
|
async def handle_message_service(
|
||||||
message_from_rmq: MessagesForSendToWorkersSchema,
|
message_from_rmq: MessagesForSendToWorkersSchema,
|
||||||
):
|
) -> ResponseFromGeminiSchema | None:
|
||||||
chat_message_schema = ChatMessageSchema(
|
chat_message_schema = ChatMessageSchema(
|
||||||
chat_id=message_from_rmq.messages[0].chat_id,
|
slice_id=message_from_rmq.slice_id,
|
||||||
messages=message_from_rmq.messages
|
messages=message_from_rmq.messages
|
||||||
)
|
)
|
||||||
MESSAGES_STORAGE_SCHEMA.chats.append(chat_message_schema)
|
MESSAGES_STORAGE_SCHEMA.chats.append(chat_message_schema)
|
||||||
@ -24,9 +25,10 @@ async def handle_message_service(
|
|||||||
result = gemini_helper.create_request_ai(
|
result = gemini_helper.create_request_ai(
|
||||||
messages=MESSAGES_STORAGE_SCHEMA
|
messages=MESSAGES_STORAGE_SCHEMA
|
||||||
)
|
)
|
||||||
print(result)
|
|
||||||
sleep(60)
|
sleep(60)
|
||||||
MESSAGES_STORAGE_SCHEMA.chats = []
|
MESSAGES_STORAGE_SCHEMA.chats = []
|
||||||
|
if result.success is not None:
|
||||||
|
await success_publisher.publish(result)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user