| from fastapi import FastAPI, Request, Form |
| from fastapi.templating import Jinja2Templates |
| import httpx |
| import csv |
| from datetime import datetime |
| import subprocess |
|
|
| app = FastAPI() |
| templates = Jinja2Templates(directory="templates") |
|
|
| async def generate_conversation(prompt): |
| try: |
| |
| prompt_variation = prompt + str(hash(prompt))[:3] |
|
|
| |
| async with httpx.AsyncClient() as client: |
| response = await client.post('https://api-inference.huggingface.co/models/facebook/blenderbot-400M-distill', json={ |
| "inputs": prompt_variation, |
| "options": {"temperature": 0.8} |
| }) |
|
|
| 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 |
|
|
|
|
| def run_aamain_script(): |
| try: |
| |
| subprocess.run(["python", "AAmain.py"], check=True) |
| return "AAmain.py script executed successfully" |
| except subprocess.CalledProcessError as e: |
| return f"Error executing AAmain.py script: {str(e)}" |
|
|
|
|
| @app.get("/") |
| def read_form(request: Request): |
| return templates.TemplateResponse("index.html", {"request": request}) |
|
|
| @app.post("/generate_ai") |
| async def generate_ai(request: Request, ai_prompt: str = Form(...)): |
| |
| conversation = await generate_conversation(ai_prompt) |
| csv_filename = save_to_csv(ai_prompt, conversation) |
| return templates.TemplateResponse("index.html", {"request": request, "prompt": ai_prompt, "conversation": conversation, "csv_filename": csv_filename}) |
|
|
| @app.post("/run_aamain") |
| async def run_aamain(request: Request): |
| |
| result = run_aamain_script() |
| return templates.TemplateResponse("index.html", {"request": request, "aamain_result": result}) |
|
|
| if __name__ == "__main__": |
| import uvicorn |
|
|
| uvicorn.run(app, host="127.0.0.1", port=8000) |
|
|