from fastapi import FastAPI, Request, Form from fastapi.templating import Jinja2Templates import httpx import csv from datetime import datetime from fastapi.staticfiles import StaticFiles import subprocess app = FastAPI() CSV_FILE_PATH0 = 'info.csv' PYTHON_SCRIPT_PATH0 = 'AAmain.py' # Set up static files app.mount("/static", StaticFiles(directory="."), name="static") templates = Jinja2Templates(directory="templates") def generate_conversation(prompt): try: # Introduce slight variations in the prompt prompt_variation = prompt + str(hash(prompt))[:3] # Adjust temperature for more diverse responses with httpx.Client() as client: response = client.post('https://api-inference.huggingface.co/models/facebook/blenderbot-400M-distill', json={ "inputs": prompt_variation, "options": {"temperature": 0.8} # Adjust as needed }) conversation = response.json()["generated_text"] return conversation except Exception as e: return f"Error: {str(e)}" def save_to_csv(prompt, conversation): timestamp = datetime.now().strftime("%Y%m%d%H%M%S") filename = f"info.csv" with open(filename, mode='w', newline='', encoding='utf-8') as csv_file: csv_writer = csv.writer(csv_file) csv_writer.writerow(['Prompt', 'Generated Conversation']) csv_writer.writerow([prompt, conversation]) return filename @app.get("/") def read_form(request: Request): return templates.TemplateResponse("index.html", {"request": request}) @app.post("/") async def generate_and_display(request: Request, prompt: str = Form(...)): conversation = generate_conversation(prompt) csv_filename = save_to_csv(prompt, conversation) return templates.TemplateResponse("index.html", {"request": request, "prompt": prompt, "conversation": conversation, "csv_filename": csv_filename}) # New route for running AAmain.py @app.post("/run_aamain") async def run_aamain(csv_filename: str = Form(...)): subprocess.run(["python", "AAmain.py", csv_filename]) # Adjust arguments as needed return {"message": "AAmain.py process started successfully."} # New route for generating AI @app.post("/generate_ai") async def generate_ai(prompt: str = Form(...)): conversation = generate_conversation(prompt) csv_filename = save_to_csv(prompt, conversation) return {"prompt": prompt, "conversation": conversation, "csv_filename": csv_filename} if __name__ == "__main__": import uvicorn uvicorn.run(app, host="127.0.0.1", port=8000)