File size: 2,991 Bytes
325b94c fcb643e 325b94c | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 | import os
import shutil
# hijl;kpplp[kiohyufrdeswa]
# Force HOME to /tmp so CrewAI doesn't try writing to /.local
os.environ["HOME"] = "/tmp"
os.environ["XDG_DATA_HOME"] = "/tmp/.local/share"
os.environ["CREWAI_STORAGE_PATH"] = "/tmp/crewai_data"
os.environ["CREWAI_HOME"] = "/tmp/crewai_home"
# Create safe directories
os.makedirs("/tmp/.local/share", exist_ok=True)
os.makedirs("/tmp/crewai_data", exist_ok=True)
os.makedirs("/tmp/crewai_home", exist_ok=True)
from crewai import Crew, Process
import json
from fastapi import FastAPI
from routers import (
objective_route,
outliner_route,
outcome_route,
introduction_route,
source_route,
scraper_route,
final_outlines_before_content_route,
content_generation_route,
quiz_route,
details_before_content_route,
)
from routers.books import (
units_structure_route,
book_structure_route,
book_planning_route,
rag_route,
rag_automation_route,
book_content,
rag_admin,
queries_route,
search_route,
rag_sources,
units_intro,
book_enrichment,
reference,
)
app = FastAPI(title="AI Agent Project", version="1.0.0")
app.include_router(outliner_route.router)
app.include_router(objective_route.router)
app.include_router(outcome_route.router)
app.include_router(introduction_route.router)
# app.include_router(source_route.router)
# app.include_router(scraper_route.router)
app.include_router(final_outlines_before_content_route.router)
app.include_router(content_generation_route.router)
app.include_router(quiz_route.router)
app.include_router(details_before_content_route.router)
app.include_router(units_structure_route.router)
app.include_router(book_structure_route.router)
app.include_router(book_planning_route.router)
app.include_router(rag_route.router)
app.include_router(book_content.router)
app.include_router(rag_automation_route.router)
app.include_router(rag_admin.router)
app.include_router(queries_route.router)
app.include_router(search_route.router)
app.include_router(rag_sources.router)
app.include_router(units_intro.router)
app.include_router(book_enrichment.router)
app.include_router(reference.router)
# Clear Cashe
@app.get("/reset-cache")
def reset_cache():
paths = [
"/tmp/crewai_data",
"/tmp/crewai_home",
"/tmp/.local/share",
]
for path in paths:
if os.path.exists(path):
shutil.rmtree(path, ignore_errors=True)
os.makedirs("/tmp/crewai_data", exist_ok=True)
os.makedirs("/tmp/crewai_home", exist_ok=True)
os.makedirs("/tmp/.local/share", exist_ok=True)
return {"message": "✅ Cache cleared successfully."}
# Example root endpoint
@app.get("/")
def read_root():
return {"message": "Welcome to AI Agent Project API 🚀"}
# ------------------------
# ✅ نقطة تشغيل السيرفر
# ------------------------
# if __name__ == "__main__":
# import uvicorn
# uvicorn.run("main:app", host="127.0.0.1", port=8000, reload=True)
|