forked from open-webui/open-webui
51 lines
1,022 B
Python
51 lines
1,022 B
Python
from fastapi import APIRouter, UploadFile, File, BackgroundTasks
|
|
from fastapi import Depends, HTTPException, status
|
|
from starlette.responses import StreamingResponse, FileResponse
|
|
|
|
|
|
from pydantic import BaseModel
|
|
|
|
|
|
import markdown
|
|
import requests
|
|
import os
|
|
import aiohttp
|
|
import json
|
|
|
|
|
|
from utils.utils import get_admin_user
|
|
from utils.misc import calculate_sha256, get_gravatar_url
|
|
|
|
from config import OLLAMA_BASE_URLS, DATA_DIR, UPLOAD_DIR
|
|
from constants import ERROR_MESSAGES
|
|
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
@router.get("/gravatar")
|
|
async def get_gravatar(
|
|
email: str,
|
|
):
|
|
return get_gravatar_url(email)
|
|
|
|
|
|
class MarkdownForm(BaseModel):
|
|
md: str
|
|
|
|
|
|
@router.post("/markdown")
|
|
async def get_html_from_markdown(
|
|
form_data: MarkdownForm,
|
|
):
|
|
return {"html": markdown.markdown(form_data.md)}
|
|
|
|
|
|
@router.get("/db/download")
|
|
async def download_db(user=Depends(get_admin_user)):
|
|
|
|
return FileResponse(
|
|
f"{DATA_DIR}/webui.db",
|
|
media_type="application/octet-stream",
|
|
filename="webui.db",
|
|
)
|