dlflannery commited on
Commit
a981cf3
·
verified ·
1 Parent(s): 3cfa2a4

Update app.py

Browse files

Added relevance estimate to bible verses

Files changed (1) hide show
  1. app.py +26 -15
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
- numbered_passages.append( (sort_num, book, chapter, verse_range, verse, dp) )
 
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
- # for (book, chapter, verse_range, verse, dp) in results:
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 max_dp == 0.0:
600
- max_dp = 0.5 # 0.8 * dp
601
- elif dp < max_dp:
602
- bad_count += 1
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.' \