api/routers/connections/ollama_format_timetable.py
2025-07-11 13:52:19 +00:00

34 lines
1.2 KiB
Python

import os
import sys
import json
import requests
def format_timetable_with_ollama(timetable_data):
url = f"{os.environ.get('APP_API_URL')}/llm/private/ollama/ollama_generate"
headers = {"Content-Type": "application/json"}
prompt = (
"Create a markdown formatted table of the following timetable data. "
"The table should have columns for 'Day', 'Time Slot', 'Effective Dates', 'Event', 'Room', and 'Staff':\n\n"
f"{json.dumps(timetable_data, indent=4)}"
)
payload = {
"model": "llama3", # Adjust the model name if necessary
"prompt": prompt
}
response = requests.post(url, headers=headers, json=payload)
if response.status_code == 200:
return response.json().get("response")
else:
raise Exception(f"Failed to get response from Ollama: {response.status_code} {response.text}")
if __name__ == "__main__":
input_data = sys.stdin.read()
try:
timetable_data = json.loads(input_data)
markdown_table = format_timetable_with_ollama(timetable_data)
print(markdown_table)
except json.JSONDecodeError:
print("Invalid JSON input", file=sys.stderr)
except Exception as e:
print(f"Error: {e}", file=sys.stderr)