fastapi / app.py
mgokg's picture
Update app.py
a94f470 verified
raw
history blame
2.67 kB
from fastapi import FastAPI
from pydantic import BaseModel
import gradio as gr
import uvicorn
from fastapi.middleware.cors import CORSMiddleware
import threading
app = FastAPI()
# Erlaube alle Ursprünge
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
class Item(BaseModel):
prompt: str
zeitstempel: int
@app.post("/items/")
async def create_item(item: Item):
global prompt
prompt = item.prompt
zeitstempel = item.zeitstempel
return {"prompt": prompt}
# Initialer Wert für prompt
prompt = ""
def get_prompt(prompt):
return prompt
def show_html():
return """<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Textfeld mit FastAPI</title>
</head>
<body>
<h1>Textfeld mit FastAPI</h1>
<form id="myForm">
<label for="prompt">Prompt:</label>
<input type="text" id="prompt" name="prompt">
<button type="button" onclick="sendData()">Senden</button>
</form>
<script>
async function sendData() {
const prompt = document.getElementById("prompt").value;
const zeitstempel = Math.floor(Date.now() / 1000); // Unix-Zeitstempel
const data = {
prompt: prompt,
zeitstempel: zeitstempel
};
const response = await fetch("https://mgokg-fastapi.hf.space:8000/items", {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify(data)
});
const result = await response.json();
alert(result)
console.log(result)
}
</script>
</body>
</html>
"""
with gr.Blocks() as demo:
gr.HTML(show_html)
with gr.Row():
#details_output = gr.DataFrame(label="Ausgabe", elem_id="md")
details_output = gr.Textbox(label="Ausgabe")
with gr.Row():
ort_input = gr.Textbox(label="", placeholder="ask anything...")
with gr.Row():
button = gr.Button("Senden")
# Connect the button to the function
button.click(fn=get_prompt, inputs=ort_input, outputs=details_output)
# Launch the Gradio application
demo.launch()
@app.get("/")
def read_root():
return {"message": "Willkommen am Root-Endpunkt."}
if __name__ == "__main__":
# Starte Gradio in einem separaten Thread
threading.Thread(target=start_gradio).start()
uvicorn.run(app, host="0.0.0.0", port=8000)