ab / appself.py
theapps's picture
Upload 36 files
ca165c7 verified
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)