OyZa commited on
Commit
4bc925a
·
verified ·
1 Parent(s): 89b729a

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +57 -0
app.py ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from fastapi import FastAPI
2
+ from pydantic import BaseModel
3
+ from g4f.client import Client
4
+ import uvicorn
5
+
6
+ # Inisialisasi FastAPI
7
+ app = FastAPI()
8
+
9
+ # Model untuk menerima payload untuk chat
10
+ class MessageRequest(BaseModel):
11
+ model: str
12
+ messages: list
13
+ web_search: bool
14
+
15
+ # Model untuk menerima payload untuk generate image
16
+ class ImageRequest(BaseModel):
17
+ model: str
18
+ prompt: str
19
+ response_format: str
20
+
21
+ @app.post("/chat")
22
+ async def chat(request: MessageRequest):
23
+ # Inisialisasi Client g4f
24
+ client = Client()
25
+
26
+ # Menangani response dari g4f untuk chat
27
+ response = client.chat.completions.create(
28
+ model=request.model,
29
+ messages=request.messages,
30
+ web_search=request.web_search
31
+ )
32
+
33
+ # Mengembalikan response dari API
34
+ return {"response": response}
35
+
36
+ @app.post("/generate-image")
37
+ async def generate_image(request: ImageRequest):
38
+ # Inisialisasi Client g4f
39
+ client = Client()
40
+
41
+ # Menangani response dari g4f untuk generate image
42
+ response = client.images.generate(
43
+ model=request.model,
44
+ prompt=request.prompt,
45
+ response_format=request.response_format
46
+ )
47
+
48
+ # Mendapatkan URL gambar yang dihasilkan
49
+ image_url = response
50
+ print(f"Generated image URL: {image_url}")
51
+
52
+ # Mengembalikan URL gambar yang dihasilkan
53
+ return {"image_url": image_url}
54
+
55
+ # Menjalankan server dengan Uvicorn jika file ini dieksekusi langsung
56
+ if __name__ == "__main__":
57
+ uvicorn.run(app, host="0.0.0.0", port=7860)