mirror of
https://github.com/open-webui/pipelines
synced 2025-05-12 16:40:45 +00:00
45 lines
1.3 KiB
Python
45 lines
1.3 KiB
Python
import uuid
|
|
import time
|
|
|
|
from typing import List
|
|
from schemas import OpenAIChatMessage
|
|
|
|
|
|
def stream_message_template(model: str, message: str):
|
|
return {
|
|
"id": f"{model}-{str(uuid.uuid4())}",
|
|
"object": "chat.completion.chunk",
|
|
"created": int(time.time()),
|
|
"model": model,
|
|
"choices": [
|
|
{
|
|
"index": 0,
|
|
"delta": {"content": message},
|
|
"logprobs": None,
|
|
"finish_reason": None,
|
|
}
|
|
],
|
|
}
|
|
|
|
|
|
def get_last_user_message(messages: List[dict]) -> str:
|
|
for message in reversed(messages):
|
|
if message["role"] == "user":
|
|
if isinstance(message["content"], list):
|
|
for item in message["content"]:
|
|
if item["type"] == "text":
|
|
return item["text"]
|
|
return message["content"]
|
|
return None
|
|
|
|
|
|
def get_last_assistant_message(messages: List[dict]) -> str:
|
|
for message in reversed(messages):
|
|
if message["role"] == "assistant":
|
|
if isinstance(message["content"], list):
|
|
for item in message["content"]:
|
|
if item["type"] == "text":
|
|
return item["text"]
|
|
return message["content"]
|
|
return None
|