Files
SMANAGE/backup/_api_backup/TempLateAPI/Invite/API/InitConversation.api
T

44 lines
1.7 KiB
Plaintext

from PDAPI import *
__metadata__ = {
"methods": ["POST"],
"blueprint": "Invite",
"permission": 1.0,
"attributes": [],
"limit": "1/second",
"args": [
{"Name": "InviteID", "Type": "int"}
]
}
def HandleRequest():
InviteID = flask.request.args.get("InviteID")
Conversation = InviteConversation.query.filter_by(InviteID=InviteID).first()
if Conversation and IsConversationValid(InviteID):
AiMessages = [Msg for Msg in Conversation.Messages if Msg.get("Role") == "Assistant"]
if AiMessages:
return flask.jsonify({
"Success": True,
"Data": {"InviteID": InviteID, "AiMessage": AiMessages[-1]}
})
Messages = [{"Role": "System", "Content": openr(JoinPath(TempLate, "Invite/prompt")), "CreateTime": time.time()}]
NewConversation = InviteConversation(
InviteID=InviteID,
Messages=Messages,
CreateTime=time.time()
)
db.session.add(NewConversation)
db.session.commit()
AiMessages = [{"role": Msg["Role"].lower(), "content": Msg["Content"]} for Msg in Messages]
Client = OpenAI(api_key="sk-e6e4206cded047818f7e329538c69613", base_url="https://api.deepseek.com")
Response = Client.chat.completions.create(model="deepseek-chat", messages=AiMessages, stream=False)
AiContent = Response.choices[0].message.content
AiMessage = {"Role": "Assistant", "Content": AiContent, "CreateTime": time.time()}
Messages.append(AiMessage)
NewConversation.Messages = Messages
db.session.add(NewConversation)
db.session.commit()
return flask.jsonify({
"Success": True,
"Data": {"InviteID": InviteID, "MessageCount": len(Messages), "AiMessage": AiMessage}
})