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)