mirror of
https://github.com/open-webui/open-webui
synced 2024-11-29 23:41:50 +00:00
33 lines
1009 B
Python
33 lines
1009 B
Python
import json
|
|
from open_webui.utils.misc import (
|
|
openai_chat_chunk_message_template,
|
|
openai_chat_completion_message_template,
|
|
)
|
|
|
|
|
|
def convert_response_ollama_to_openai(ollama_response: dict) -> dict:
|
|
model = ollama_response.get("model", "ollama")
|
|
message_content = ollama_response.get("message", {}).get("content", "")
|
|
|
|
response = openai_chat_completion_message_template(model, message_content)
|
|
return response
|
|
|
|
|
|
async def convert_streaming_response_ollama_to_openai(ollama_streaming_response):
|
|
async for data in ollama_streaming_response.body_iterator:
|
|
data = json.loads(data)
|
|
|
|
model = data.get("model", "ollama")
|
|
message_content = data.get("message", {}).get("content", "")
|
|
done = data.get("done", False)
|
|
|
|
data = openai_chat_chunk_message_template(
|
|
model, message_content if not done else None
|
|
)
|
|
|
|
line = f"data: {json.dumps(data)}\n\n"
|
|
if done:
|
|
line += "data: [DONE]\n\n"
|
|
|
|
yield line
|