TimInf commited on
Commit
c381645
·
verified ·
1 Parent(s): 72a399b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +15 -31
app.py CHANGED
@@ -1,41 +1,25 @@
1
  from fastapi import FastAPI, Request
2
  from fastapi.responses import JSONResponse
3
- import gradio as gr
4
 
5
  app = FastAPI()
6
 
7
- def generate_recipe(required, available, max_ingredients):
8
- # Platzhalter-Logik
9
- return f"Rezept mit {required}, {available}, max. {max_ingredients} Zutaten."
10
-
11
- # API-Endpunkt für curl etc.
12
  @app.post("/generate")
13
  async def generate(request: Request):
14
- try:
15
- data = await request.json()
16
- required = data.get("required", "")
17
- available = data.get("available", "")
18
- max_ingredients = data.get("max_ingredients", 5)
19
- result = generate_recipe(required, available, max_ingredients)
20
- return {"recipe": result}
21
- except Exception as e:
22
- return JSONResponse(status_code=400, content={"error": str(e)})
23
 
24
- # Gradio-UI
25
- def gradio_interface(required, available, max_ingredients):
26
- return generate_recipe(required, available, max_ingredients)
 
27
 
28
- demo = gr.Interface(
29
- fn=gradio_interface,
30
- inputs=[
31
- gr.Textbox(label="Benötigte Zutaten"),
32
- gr.Textbox(label="Verfügbare Zutaten"),
33
- gr.Slider(1, 10, value=5, label="Maximale Zutatenanzahl")
34
- ],
35
- outputs="text",
36
- title="Rezeptgenerator"
37
- )
38
 
39
- @app.get("/")
40
- def gradio_root():
41
- return gr.mount_gradio_app(app, demo, path="/")
 
1
  from fastapi import FastAPI, Request
2
  from fastapi.responses import JSONResponse
3
+ import uvicorn
4
 
5
  app = FastAPI()
6
 
 
 
 
 
 
7
  @app.post("/generate")
8
  async def generate(request: Request):
9
+ data = await request.json()
10
+ required = data.get("required", "")
11
+ available = data.get("available", "")
12
+ max_ingredients = int(data.get("max_ingredients", 6))
13
+ response = generate_recipe_api(required, available, max_ingredients)
14
+ return JSONResponse(content=json.loads(response))
 
 
 
15
 
16
+ # Kombiniere FastAPI und Gradio
17
+ import threading
18
+ def launch_gradio():
19
+ demo.launch(server_name="0.0.0.0", server_port=7860, show_error=True, share=False)
20
 
21
+ threading.Thread(target=launch_gradio).start()
 
 
 
 
 
 
 
 
 
22
 
23
+ # Starte FastAPI Server
24
+ if __name__ == "__main__":
25
+ uvicorn.run(app, host="0.0.0.0", port=7861)