ab / appp.py
theapps's picture
Upload 36 files
ca165c7 verified
raw
history blame
2.43 kB
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:
# Introduce slight variations in the prompt
prompt_variation = prompt + str(hash(prompt))[:3]
# Adjust temperature for more diverse responses
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} # 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
def run_aamain_script():
try:
# Run the AAmain.py script
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(...)):
# Handle generation logic
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):
# Handle running AAmain.py script
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)