Spaces:
Running
Running
Update app.py
Browse filesAdded relevance estimate to bible verses
app.py
CHANGED
|
@@ -57,7 +57,13 @@ abbrevs = {'St. ' : 'Saint ', 'Mr. ': 'mister ', 'Mrs. ':'mussus ', 'Mr. ':'mist
|
|
| 57 |
languages ={'en':'English', 'es':'Spanish', 'de':'German', 'fr':'French', 'zh':'Chinese', 'ro':'Romanian',
|
| 58 |
'ja':'Japanese', 'he':'Hebrew', 'af':'Afrikaans'}
|
| 59 |
|
| 60 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 61 |
|
| 62 |
def make_sorted_passages(passages, bible_books):
|
| 63 |
numbered_passages = []
|
|
@@ -69,10 +75,23 @@ def make_sorted_passages(passages, bible_books):
|
|
| 69 |
verses = verse_range.split('-')
|
| 70 |
verse_num = int(verses[0].strip())
|
| 71 |
sort_num = book_num + chap_num + verse_num
|
| 72 |
-
|
|
|
|
| 73 |
sorted_passages = sorted(numbered_passages)
|
| 74 |
return sorted_passages
|
| 75 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 76 |
def make_hebrew(prompt: str, en_hebrew: {})->str:
|
| 77 |
prompt = prompt.casefold()
|
| 78 |
for (key, val) in en_hebrew.items():
|
|
@@ -592,22 +611,14 @@ def chat(prompt, user_window, pwd_window, past, response, gptModel, clip_text, d
|
|
| 592 |
max_dp = 0.0
|
| 593 |
bad_count = 0
|
| 594 |
sorted_passages = make_sorted_passages(results, bible_books)
|
| 595 |
-
|
| 596 |
-
# (book_num, book) = bible_books.get(book, ( -1, book))
|
| 597 |
-
for (book_num, book, chapter, verse_range, verse, dp) in sorted_passages:
|
| 598 |
verse = verse.rstrip(" )\n")
|
| 599 |
-
if
|
| 600 |
-
|
| 601 |
-
|
| 602 |
-
|
| 603 |
-
# verse = 'LESS RELEVANT: ' + verse
|
| 604 |
-
# verse = f'Book: {book}, Chapter: {chapter}, Verses: {verse_range}: {verse}'
|
| 605 |
line = f'<h5>{book}:{chapter}:{verse_range}</h5>{verse}\n'
|
| 606 |
-
# if bad_count == 1:
|
| 607 |
-
# bible_list.append('\n<h5>Some passages found based on your prompt may seem irrelevant</h5>\n')
|
| 608 |
bible_list.append(line)
|
| 609 |
-
if bad_count < 5:
|
| 610 |
-
rag_txt += line
|
| 611 |
guidance = '''It is a group of bible passages.
|
| 612 |
Each group is headed by (Passage: Book Name, Chapter 3, Verses)'''
|
| 613 |
prompt = rag_txt + '.\n ' + prompt + '\nGive higher priority to the information just provided.' \
|
|
|
|
| 57 |
languages ={'en':'English', 'es':'Spanish', 'de':'German', 'fr':'French', 'zh':'Chinese', 'ro':'Romanian',
|
| 58 |
'ja':'Japanese', 'he':'Hebrew', 'af':'Afrikaans'}
|
| 59 |
|
| 60 |
+
relevance_terms = [
|
| 61 |
+
'Probably little connection',
|
| 62 |
+
'Questionable relevance',
|
| 63 |
+
'May be relevant',
|
| 64 |
+
'Probably relevant',
|
| 65 |
+
'Likely highly relevant'
|
| 66 |
+
]
|
| 67 |
|
| 68 |
def make_sorted_passages(passages, bible_books):
|
| 69 |
numbered_passages = []
|
|
|
|
| 75 |
verses = verse_range.split('-')
|
| 76 |
verse_num = int(verses[0].strip())
|
| 77 |
sort_num = book_num + chap_num + verse_num
|
| 78 |
+
relevance = get_relevance_number(dp)
|
| 79 |
+
numbered_passages.append( (sort_num, book, chapter, verse_range, verse, relevance) )
|
| 80 |
sorted_passages = sorted(numbered_passages)
|
| 81 |
return sorted_passages
|
| 82 |
|
| 83 |
+
def get_relevance_number(dp: float)->int:
|
| 84 |
+
rv = 0
|
| 85 |
+
if dp > 0.6:
|
| 86 |
+
rv = 4
|
| 87 |
+
elif dp > 0.5:
|
| 88 |
+
rv = 3
|
| 89 |
+
elif dp > 0.4:
|
| 90 |
+
rv = 2
|
| 91 |
+
elif dp > 0.3:
|
| 92 |
+
rv = 1
|
| 93 |
+
return rv
|
| 94 |
+
|
| 95 |
def make_hebrew(prompt: str, en_hebrew: {})->str:
|
| 96 |
prompt = prompt.casefold()
|
| 97 |
for (key, val) in en_hebrew.items():
|
|
|
|
| 611 |
max_dp = 0.0
|
| 612 |
bad_count = 0
|
| 613 |
sorted_passages = make_sorted_passages(results, bible_books)
|
| 614 |
+
for (book_num, book, chapter, verse_range, verse, relevance) in sorted_passages:
|
|
|
|
|
|
|
| 615 |
verse = verse.rstrip(" )\n")
|
| 616 |
+
if relevance > 1:
|
| 617 |
+
rag_line = f'{book}:{chapter}:{verse_range}\n{verse}\n'
|
| 618 |
+
rag_txt += rag_line
|
| 619 |
+
verse += f'\n({relevance_terms[relevance]} to query)'
|
|
|
|
|
|
|
| 620 |
line = f'<h5>{book}:{chapter}:{verse_range}</h5>{verse}\n'
|
|
|
|
|
|
|
| 621 |
bible_list.append(line)
|
|
|
|
|
|
|
| 622 |
guidance = '''It is a group of bible passages.
|
| 623 |
Each group is headed by (Passage: Book Name, Chapter 3, Verses)'''
|
| 624 |
prompt = rag_txt + '.\n ' + prompt + '\nGive higher priority to the information just provided.' \
|