File size: 2,860 Bytes
5a99410
 
 
 
 
09b6f7c
5a99410
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import pickle
import os


print(os.getcwd())
fileobj=open("/home/user/app/embmmn7 (1).obj","rb")
corpus_embeddings,corpus=pickle.load(fileobj)
fileobj.close()
from sentence_transformers import SentenceTransformer, util
import torch

embedder = SentenceTransformer("ramdane/jurimodel")
embedder.max_seq_length=510
def showrs(queries,number,id=0):
  if(id==-1):
    query_embedding = embedder.encode(queries, convert_to_tensor=True)
    hits = util.semantic_search(query_embedding, corpus_embeddings, top_k=10)
    hits = hits[0]      #Get the hits for the first query
    if(hits[number]['score']>0.2):
      return corpus[hits[number]['corpus_id'] ]
    else:
        return "لم نتمكن من ايجاد النتيجة اما لعدم وجود الاجتهاد او لعدم كتابة جملة بحث مناسبة "
  else:
    chambres=[["العقارية", "الغرفة العقارية"," العقارية"],["المدنية","الغرفة المدنية ","غرفة المدنية "],["الاجتماعية","الغرفة الاجتماعية","الإجتماعية" ], ["الجنح","الجنح","جنح ومخالفت" ], ["الجنائية","جنائية","الجنائية"],["شؤون الاسرة","شؤون الأسرة","الاحوال الشخصية","المواريث","الأحوال الشخصية"],["التجارية ","التجارية ","التجارية","تجارية","البحرية"]]
    phrases_to_search = chambres[id]

    corpusf = []
    corpus_embeddingsf = []

    for i, text in enumerate(corpus):
        found = any(phrase in text for phrase in phrases_to_search)
        if found:
          corpusf.append(text)
          corpus_embeddingsf.append(corpus_embeddings[i])
    query_embedding = embedder.encode(queries, convert_to_tensor=True)
    hits = util.semantic_search(query_embedding, corpus_embeddingsf, top_k=10)
    hits = hits[0]
    
    return corpusf[hits[number]['corpus_id'] ]
import gradio as gr


# Define a dictionary to map text labels to numbers
room_options = {
    "الكل": -1,
    "الغرفة  العقارية": 0,
    "الغرفة المدنية": 1,
    "الغرفة الاجتماعية": 2,
    "الغرفة الجنح والمخالفات": 3,
    "الغرفة الحنائية": 4,
    "الغرفة شؤون الاسرة والمواريث": 5,
    "الغرفة التجارية": 6,
}

def greet_user(name,numbers,num):
    # Extract the selected number based on the selected room
    number =num
    
    return showrs(name,int(numbers),int(number))

# Create a list of room options for the dropdown
room_choices = list(room_options.keys())

app = gr.Interface(
    fn=greet_user,
    inputs=[gr.Textbox(label="ادخل كلمات البحث"),gr.Number(label="الترتيب"),gr.Number(label="اختر الغرفة")],
    outputs=gr.TextArea(label="Result")
)
app.launch()