File size: 1,357 Bytes
39d4ddb 04549f6 39d4ddb 7f1bd15 04549f6 7f1bd15 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
import io
import requests
import streamlit as st
from openai import APIError, OpenAI
from PIL import Image
from .config import Config
def txt2txt_generate(api_key, service, model, parameters, **kwargs):
base_url = Config.SERVICES[service]
if service == "Huggingface":
base_url = f"{base_url}/{model}/v1"
client = OpenAI(api_key=api_key, base_url=base_url)
try:
stream = client.chat.completions.create(stream=True, model=model, **parameters, **kwargs)
return st.write_stream(stream)
except APIError as e:
return e.message
except Exception as e:
return str(e)
def txt2img_generate(api_key, service, model, inputs, parameters, **kwargs):
headers = {
"Authorization": f"Bearer {api_key}",
"X-Wait-For-Model": "true",
"X-Use-Cache": "false",
}
base_url = f"{Config.SERVICES[service]}/{model}"
try:
response = requests.post(
base_url,
headers=headers,
json={
"inputs": inputs,
"parameters": {**parameters, **kwargs},
},
)
if response.status_code == 200:
return Image.open(io.BytesIO(response.content))
else:
return f"Error: {response.status_code} - {response.text}"
except Exception as e:
return str(e)
|