Yermek68 commited on
Commit
0e70ff4
·
verified ·
1 Parent(s): 2973335

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +28 -11
app.py CHANGED
@@ -1,19 +1,20 @@
1
  from fastapi import FastAPI, UploadFile, File
2
  from typing import List
3
- import chromadb
 
 
4
 
 
5
  app = FastAPI(title="Eroha AgentAPI", version="2.1.1")
6
 
7
- client = chromadb.Client()
8
- collection = client.get_or_create_collection("eroha_docs")
9
-
10
  embedder = None
11
  summarizer = None
12
 
13
  @app.get("/")
14
  def home():
15
  return {
16
- "message": "Eroha AgentAPI is alive!",
17
  "routes": ["/check", "/summarize"]
18
  }
19
 
@@ -28,17 +29,33 @@ def check_health():
28
  @app.post("/summarize")
29
  async def summarize_text(files: List[UploadFile] = File(...)):
30
  global embedder, summarizer
 
 
31
  if embedder is None or summarizer is None:
32
- from sentence_transformers import SentenceTransformer
33
- from transformers import pipeline
34
  embedder = SentenceTransformer("all-MiniLM-L6-v2")
35
- summarizer = pipeline("text2text-generation", model="google/flan-t5-base")
36
 
 
37
  texts = []
38
  for file in files:
39
  content = await file.read()
40
- texts.append(content.decode("utf-8"))
41
 
 
42
  full_text = "\n".join(texts)
43
- summary = summarizer(full_text, max_length=150, min_length=40, do_sample=False)
44
- return {"summary": summary[0]["generated_text"]}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  from fastapi import FastAPI, UploadFile, File
2
  from typing import List
3
+ from sentence_transformers import SentenceTransformer
4
+ from transformers import pipeline
5
+ import asyncio
6
 
7
+ # --- FastAPI app ---
8
  app = FastAPI(title="Eroha AgentAPI", version="2.1.1")
9
 
10
+ # --- Lazy initialization ---
 
 
11
  embedder = None
12
  summarizer = None
13
 
14
  @app.get("/")
15
  def home():
16
  return {
17
+ "message": "Eroha AgentAPI is alive!",
18
  "routes": ["/check", "/summarize"]
19
  }
20
 
 
29
  @app.post("/summarize")
30
  async def summarize_text(files: List[UploadFile] = File(...)):
31
  global embedder, summarizer
32
+
33
+ # Lazy load models (only on first call)
34
  if embedder is None or summarizer is None:
 
 
35
  embedder = SentenceTransformer("all-MiniLM-L6-v2")
36
+ summarizer = pipeline("summarization", model="facebook/bart-large-cnn")
37
 
38
+ # Collect text from uploaded files
39
  texts = []
40
  for file in files:
41
  content = await file.read()
42
+ texts.append(content.decode("utf-8", errors="ignore"))
43
 
44
+ # Combine into one large string
45
  full_text = "\n".join(texts)
46
+
47
+ # Create embedding (optional — for debugging)
48
+ embedding = embedder.encode(full_text[:512]) # just preview embedding
49
+
50
+ # Summarize
51
+ summary = summarizer(full_text, max_length=200, min_length=50, do_sample=False)
52
+
53
+ return {
54
+ "summary": summary[0]["summary_text"],
55
+ "embedding_preview": embedding[:5].tolist() if hasattr(embedding, "tolist") else [],
56
+ }
57
+
58
+ # --- Health endpoint ---
59
+ @app.get("/ping")
60
+ def ping():
61
+ return {"status": "running"}