Spaces:
Sleeping
Sleeping
import gradio as gr | |
from api import app | |
import uvicorn | |
import threading | |
import time | |
# Create a simple Gradio interface | |
def create_interface(): | |
with gr.Blocks(title="ChatDocxAI Backend") as interface: | |
gr.Markdown("# ChatDocxAI Backend") | |
gr.Markdown(""" | |
This is the backend server for ChatDocxAI. It provides the following endpoints: | |
- `/upload` - Upload documents | |
- `/ask` - Ask questions about uploaded documents | |
The frontend should be configured to communicate with this backend. | |
""") | |
with gr.Row(): | |
with gr.Column(): | |
gr.Markdown("## Server Status") | |
status = gr.Textbox(value="Server is running", label="Status") | |
with gr.Row(): | |
with gr.Column(): | |
gr.Markdown("## API Documentation") | |
doc_link = gr.HTML(f"<a href='/docs' target='_blank'>View FastAPI Docs</a>") | |
return interface | |
# Function to start FastAPI in a separate thread | |
def start_fastapi(): | |
uvicorn.run(app, host="0.0.0.0", port=7860) | |
# Start FastAPI in a separate thread | |
fastapi_thread = threading.Thread(target=start_fastapi) | |
fastapi_thread.daemon = True | |
fastapi_thread.start() | |
# Allow some time for FastAPI to start | |
time.sleep(2) | |
# Create and launch the Gradio interface | |
interface = create_interface() | |
# Launch the interface | |
if __name__ == "__main__": | |
interface.launch(server_port=7861) # Use a different port than FastAPI | |