ramysaidagieb commited on
Commit
7562d5e
·
verified ·
1 Parent(s): 6a78ac0

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +4 -6
app.py CHANGED
@@ -17,7 +17,6 @@ embedder = SentenceTransformer("sentence-transformers/LaBSE")
17
 
18
  # تقطيع النصوص من PDF
19
  def process_pdf(pdf_file):
20
- # استخدام مسار الملف مباشرة
21
  doc = fitz.open(pdf_file.name)
22
  texts = []
23
  for page in doc:
@@ -35,23 +34,22 @@ def ingest(pdf_file):
35
  col.add(ids=[f"chunk_{i}"], embeddings=[emb.tolist()], metadatas=[{"text": chunk}])
36
  return f"✅ تمت إضافة {len(texts)} مقطعاً."
37
 
38
- # استرجاع السياق من Chroma
39
- retriever = dspy.Retrieve(lambda q: [m["text"] for m in col.query(q, n_results=1)["metadatas"]])
40
-
41
  # تعريف التوقيع باستخدام InputField و OutputField
42
  class RagSig(dspy.Signature):
43
  question: str = dspy.InputField()
44
  context: str = dspy.InputField()
45
  answer: str = dspy.OutputField()
46
 
47
- # وحدة DSPy
48
  class RagMod(dspy.Module):
49
  def __init__(self):
50
  super().__init__()
51
  self.predictor = dspy.Predict(RagSig)
52
 
53
  def forward(self, question):
54
- context = retriever(question)[0]
 
 
55
  return self.predictor(question=question, context=context)
56
 
57
  model = RagMod()
 
17
 
18
  # تقطيع النصوص من PDF
19
  def process_pdf(pdf_file):
 
20
  doc = fitz.open(pdf_file.name)
21
  texts = []
22
  for page in doc:
 
34
  col.add(ids=[f"chunk_{i}"], embeddings=[emb.tolist()], metadatas=[{"text": chunk}])
35
  return f"✅ تمت إضافة {len(texts)} مقطعاً."
36
 
 
 
 
37
  # تعريف التوقيع باستخدام InputField و OutputField
38
  class RagSig(dspy.Signature):
39
  question: str = dspy.InputField()
40
  context: str = dspy.InputField()
41
  answer: str = dspy.OutputField()
42
 
43
+ # وحدة DSPy مع استرجاع السياق من Chroma داخل forward
44
  class RagMod(dspy.Module):
45
  def __init__(self):
46
  super().__init__()
47
  self.predictor = dspy.Predict(RagSig)
48
 
49
  def forward(self, question):
50
+ results = col.query(question, n_results=1)
51
+ context_list = [m["text"] for m in results["metadatas"]]
52
+ context = context_list[0] if context_list else ""
53
  return self.predictor(question=question, context=context)
54
 
55
  model = RagMod()