Spaces:
Paused
Paused
| 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" | |
| yield line | |
| yield "data: [DONE]\n\n" | |