|
import json |
|
import requests |
|
import streamlit as st |
|
import os |
|
import openai |
|
|
|
|
|
openai.api_type = "azure" |
|
openai.api_version = "2023-12-01-preview" |
|
openai.api_base = "https://tensora-oai.openai.azure.com/" |
|
openai.api_key = os.getenv("us_key") |
|
|
|
|
|
prompt = "Please analyze a complete news article and generate a suitable DALL路E prompt in response. The prompt should provide a general overview without being overly specific. For technical purposes, please only provide the DALL路E prompt without any additional information." |
|
headers = {"Authorization": f"Bearer {os.getenv('imageapi')}"} |
|
url = "https://api.edenai.run/v2/image/generation" |
|
|
|
|
|
article = st.text_input("Newsarticle to Image") |
|
|
|
if st.button("Get Picture from Text"): |
|
try: |
|
response = openai.ChatCompletion.create( |
|
engine="gpt-4-0613", |
|
temperature = 0.2, |
|
messages=[ |
|
{"role": "system", "content": prompt}, |
|
{"role": "system", "content": article} |
|
], |
|
) |
|
except Exception as e: |
|
st.error(f"ChatGPT Error {e}") |
|
|
|
payload = { |
|
"providers": "openai", |
|
"settings" : {"openai": "dall-e-3"}, |
|
"text": response.choices[0].message["content"], |
|
"resolution": "1024x1024", |
|
"fallback_providers": "openai" |
|
} |
|
|
|
|
|
|
|
response = requests.post(url, json=payload, headers=headers) |
|
result = json.loads(response.text) |
|
responseimg = requests.get(result['openai']['items'][0]['image_resource_url']) |
|
if response.status_code == 200: |
|
st.image(responseimg.content) |
|
else: |
|
st.error("Failed download") |
|
|