Show HN: Biblos – Semantic Bible Embedded Vector Search and Claude LLM (github.com)
Introducing Biblos, a simple tool for semantic search and summarization of Bible passages. Leveraging Chroma for vector search with BAAI BGE embeddings, semantically find related verses across the Bible. The tool employs Anthropic's Claude LLM model for generating high-quality summaries of retrieved passages, contextualizing your search topic. Built on a Retrieval Augmented Generation (RAG) architecture, the app implements a simple Streamlit Web UI using Python. Deployed using render.com, the app is available at https://biblos.app
Note: Search by just topic/keywords, e.g. "Kingdom of Heaven", for broader results!
89 comments
[ 247 ms ] story [ 205 ms ] threadThis is a common thing for vector similarity search. I wonder if there's a solution already. I thought about giving the query to an LLM to reformulate in the database-relevant way before embedding it.
I think to most people it’s pretty obvious you are trying to make the algorithm fit your bias/preconceived ideas.
A software tester walks into a bar.
Runs into a bar.
Crawls into a bar.
Dances into a bar.
Flies into a bar.
Jumps into a bar.
And orders:
a beer.
2 beers.
0 beers.
99999999 beers.
a lizard in a beer glass.
-1 beer.
"qwertyuiop" beers.
Testing complete.
A real customer walks into the bar and asks where the bathroom is.
The bar goes up in flames.
When people agree with the results for the majority of the corpus but cherry-pick “inaccuracies” to justify their bigotry, that’s what I have a problem with.
It sounds like you want to RLHF a model to hate LGBTQ people…
This is not progress.
Its a search of the text by the semantics of the text, not a search of the text by how doctrine has been rationalized (which could be done by an LLM, but wouldn't use a vector DB of the text, rather, it would need sonething like a vector DB of documentation of relevant written justifications of doctrine annotated with scriptural references, and then a simple book-chapter-verse DB of the scriptural text.) These are decidedly different problems, and complaining that something that purports to solve the first doesn’t solve the second is... odd.
ChatGPT knows a good answer to the question even without embeddings. But this particular tool can't replicate it, and says e.g. "In summary, these verses highlight sexual ethics and various sins in general, but do not uniformly condemn or condone homosexuality specifically." (which is not wrong, it's just the wrong verses found). (It gives a different summary on different tries)
This is a common problem with embedding search. Obviously, the other traditional techniques would be even worse. But I'd love the systems to be better, and I propose a potential solution, and ask for other ones. I will not be content with your "put up with AI idiosyncrasies and weaknesses, as if they were the real actual conceptual limitation of knowledge" approach. AI has potential to create great UI, but your attitude won't help with that
ChatGPT knows what people in its training corpus commonly say is a good answer.
When you force it to look strictly at the text isolating the influence of popular interpretation, it comes up with a different answer that you like less.
Now, one explanation could be that the embeddings it uses to find relevant text are bad. But there’s another explanation, too...
"clobber passages" and "LGBT+ friendly affirming Christian ressources"
Did God create "the products of inqest will suffer for their parents' sins"? Is God then Just or Benevolent?
Did God create a world of suffering after creating heaven?
Did God will that we would all be products of the inquest of Adam and Eve? Why did Cain harm Abel, and why was the third child fine?
Did God create Heaven? Did God create Hell? Did God create "taking babies from their crying mothers actually levels them up out of the world of suffering"; did God create death and suffering?
How could we give due process to the accused 2000+ years ago, and why don't religious text specify equal due process (or even hand-washing before delivering babies)?
Why did God spend 5.5 times longer on creating a world of suffering?
Isaiah 55:8-9
"For my thoughts are not your thoughts, neither are your ways my ways," declares the LORD. "As the heavens are higher than the earth, so are my ways higher than your ways and my thoughts than your thoughts."
In other words, don't try to comprehend something you have no chance of comprehending
Then you'll see that because humans are intrinsically human, this idea of sin, a disease if you will, infects all of existence and the clock of entropy begins to wind down. And now humans know the difference between good and evil, and with that knowledge comes the ability to choose evil.
> inquest of Adam and Eve
Hear me out; God created genetically perfect humans at the beginning, capable of yielding all the variety we see today (and more, who knows how many branches of humanity have been completely wiped out through the years). It wasn't until the Mosaic law was handed down that what we call "incest" was outlawed. I will presume that this was about the time that genetic diversity had narrowed to the point of producing overly damaged offspring.
> Did God create heaven?
Yes.
> Did God create hell?
That depends on which one you're talking about. He created all but one hell. The one He didn't create is merely His absence.
> Did God create "taking babies from their crying mothers actually levels them up out of the world of suffering"; did God create death and suffering?
By one man sin entered the world. The answer is no, God did not create these things.
Condemnation of homosexuality is a popular gloss or rationalization of this, wierdly common among literalists, but, I mean, Leviticus condemns mixing fibers, and has plenty of rules that apply to only one gender, I don't see why we shouldn't take its condemnation of specifically men mixing gay and straight sex literally, too. (And maybe also take Acts 15 literally as to which part of the ancient Mosaic law applies to non-Jewish Christians, and not worry about that rule however we gloss it, since it concerns neither pollution from idols, unlawful marriage, blood, or the meat of strangled animals.)
Curious how you get that interpretation out of those texts? From "Do not have sexual relations with a man as one does with a woman; that is detestable", I read "as one does with a woman", as an analogy. Do you have reason to read it otherwise?
OTOH, I just realized I don't know what is true of the version used by this app, because while for some reason I thought it was KJV, I'm not sure what version it is using currently (there's a reference to starting with using the KJV implying something else is used now, but its not clear what that is.) So the comment about what those verses contain, as relates to the app, may or may not be correct.
Second, there's the "all translators mangle things, often to support existing dogma" which is a lot harder. The version I quoted is the English Standard Version, which is a very highly respected modern translation. Translation is hard, even with modern languages. So I'd want to see someone with actual Ancient Hebrew credentials to explain it.
and the so called "clobber passages" and a holistic accepting Christian view at sexual orientation minorities and gender identity minorities has been discussed at nauseam.
you find them easily searching for "LGBT+ friendly affirming Christian ressources"
god bless you, those you love and those you don't love yet.
I find any time someone says, "Yes, that's what the Bible says, but no, that's not what the Bible means!" you're on very thin ice, regardless if it's said by a person in a pulpit or a person throwing (metaphorical) stones.
I'm also eager to learn where I'm wrong about something... if I've misunderstood something, I want to be enlightened.
look, I'm a Catholic lesbian in Germany, married to a wife, and we have an active church life with our family with our two kids.
I find any time someone claiming the Bible means what it says, literally, you're on very thin ice, regardless if it comes from a pulpit or if it comes from a person trying to (again) slander or misrepresent my family as "evil" or "sinful" or "intrinsically disordered".
I have skin in this game and I have my fair share of wounds from well meaning misguided love the sinner hate the sin bigotry.
wrt your curiosity I said and I say it again: "LGBT+ friendly affirming Christian ressources" finds you _plenty_ of elaborate treatises.
I'm out.
Doesn't help with the grammar, but it's a very accessible way to get some accountability for the translations.
It's pretty black and white that the Bible condemns homosexuality, there is no rationalization required.
The rationalization is the other way around. Many Christians no longer believe that homosexuality is wrong and they are faced with having to abandon the Bible as a guide for morality or coming up with complex interpretive efforts to align the text with modern moral perspectives.
Of course, most Christians chose the latter option or abandon the Old Testament, which is almost impossible to defend by modern moral standards, and stick with the New Testament which is a bit more vanilla.
But that isn't the case. On the contrary: given the state of the world the only logical conclusion is that there's only us. There's only humans dealing with other humans. That's it.
A lot of people don't believe the world is round despite overwhelming evidence to the contrary. People come to different conclusions based on the same evidence all the time. (I'd prefer an example that doesn't imply that people with one belief are completely irrational, but that's the first one I came up with.)
To me, it's a lot harder to believe that God doesn't exist. Our beliefs are also shaped by our own experience and lots of intangible things.
No, “any evidence for X” does not imply “X is fact”.
That's why in the justice systems different degrees of evidence are needed for different consequences: if your rule was true, if there was any evidence for something, we could just jump to the most extreme consequence warranted given the assumption that the thing for which there was evidence was a certain fact. It would be “there's even the slightest evidence of guilt” -> “impose punishment”.
Like the Femputer in Futurama’s universe.
It's censored. Looks like you need to build your own LLM unless you want some developer's thinly veiled opinion.
Add the verse numbers in the results and turn them into links so that the full passages can be read
Include other translations, especially the KJV and Greek interlinear, since those are still widely used and referenced. Different churches have particular reasons for using the versions that they've chosen, and cross-examining translations is highly important in Bible study
Include optional commentaries as search sources since those can lend a lot of insight into different passages, even serving as cross-references to other related passages
While copyrights for most things in the UK expire after a time, the same as other countries, that historically has not been true for works produced under the aegis of the Crown. In the case of the KJV, King James paid for the translation, so it falls under Crown Copyright.
As the saying goes, "It's good to be the King".
I think some Crown Copyright works are going to fall out of copyright in 2040, but I'm not sure if that includes the KJV.
Have been seeing Vector databases been thrown around, how is this different from normal search, or elastic / solr.
What do I input / output. Been reading into it shortly, but don;t get it yet.
You're censoring the Bible now? Lol.
Was this trained on any particular commentary?
A little fine tuning would probably go a long way since the embeddings are likely trained mostly on a nonreligious corpus in the modern tongue. It might also be overfitted so trying smaller models might also help.
- InstructorXL is my favorite embedding model because it has a two part input, sort of like a system prompt, that you can use to qualify the user input without modifying it yourself. You can experiment with using different system prompts on the initial embeddings and the user prompt. You can also use a bunch of different system prompts and weigh their scores, average them, add them, etc.
- You can start with qualitative test cases like the obvious Leviticus prohibitions and see what the range of scores are like before you create automated test cases and evaluations. Find one of those bibles where one side is the original King James translation and the other side is in modern English to use for more complex pairings.
- If that doesn't lead to an obvious winner, you may need to create a dataset for fine tuning. Make sure the dataset includes lots of negative examples too - cosine similarity scores should have a range of -1 to 1 to be most useful. Maybe take some important verses and change them to the opposite meaning ("thou shall not" => "thou shall") to create those negatives. Split your fine tuning data set into different categories so you can experiment with different combinations (i.e. the aforementioned autogenerated opposite pairs might really hurt the fine tuning because they're too similar).
- You can probably fine tune it using a completely synthetic dataset using GPT-3.5/4 to do all the work. It's "aware" of the concept of vector embeddings and the training data format so it can create positive and negative pairs for you based on your instructions. You can probably find some sort of ranking of the most important passages (say most quoted or something) and feed those to a prompt to generate tons of pairs quickly.
One thing I like is that it provides the source text, so you can verify whether the summary is accurate. Other engines just give you an answer, leaving you to verify accuracy on your own as a separate step. But I wonder which translation it uses?
Wondering if it has a bias toward any particular theology, I tried some controversial terms.
The program gave an accurate defense of the five points of calvinism, but when I asked about dispensationalism, the verses it gave were less relevant than I hoped. On the other hand, it did give relevant results for Arminianism. On predestination, however, it missed Romans 9 but instead returned passages from Ecclesiastes and Galatians 4.
Concerning Roman Catholic theology, it did not seem to know what the immaculate conception is, and instead wandered aimlessly. It did know what purgatory is, but I expected to see 1 Cor. 13 and instead it returned passages from Job and Ecclesiastes.
Concerning Orthodox theology, it did not seem to know what the word filioque means. This isn't a word found in the bible, but neither is calvinism nor trinity, which it did know. It also knew iconostasis, though I am not qualified to judge whether it explained it accurately.
I was impressed that it knows what a gift economy is; I don't think this is a term I would expect to see in a typical commentary.
It did not feel comfortable commenting on facebook, but when I asked about the internet, the summary explained that we should only be judged by God and not our friends, and also warned against adulturous women. It was more positive about an information superhighway, returning results about sharing knowledge and being honest.
A bug: if I click Summarize before the search is complete, I get a different response than if I wait for the runner to stop running and then click Summarize.
Not sure if this is something that might be of interest to you, but I've been using this occasionally in Logos and rather enjoy it.
[1] https://berean.bible/
[2] https://berean.bible/licensing.htm
[3] https://majoritybible.com/
Can you speak to the credentials or reliability of the Berean project? Even something as "straightforward" (not minimizing the work!) as a literal translation can have lots of nuance in certain passages.
The project itself is funded by Bible Hub. I don't know if that will affect your view of the text or not, but their objective was to have a fully transparent translation accepting feedback from academics, pastors, and lay-readers for each revision. As such, I've found it quite readable and it seems to fall somewhere between ESV and NET in terms of readability (not as terse as ESV, not as verbose as NET).
Have you considered Logos? It's not exactly cheap, but the search tools are extremely powerful. They have a Hebrew-English interlinear for both the MT and the DSS and you can quite easily search on the MSS words, the lemma, or roots throughout the entire text. The mobile version isn't quite as feature-full, however, but I use it with some regularity in church and during Wednesday night classes (currently covering Revelation).
[1] https://berean.bible/committee.htm
Thanks so much for the additional info. I'll do some additional research on the project, but that sounds encouraging. I hope the literal translation ends up as a sort of modernized ASV, which sticks very closely to the original Greek sentence structure but the verbiage is a little dated sometimes.
Thinking on this, I wonder if the LSB would be of interest to you? I believe its heritage traces back to the NASB95 but with some differences (Yahweh instead of LORD).
It's something of a shame that Bibliotheca doesn't have their American Literary Version available outside their printing (which is expensive), because it's an update to the ASV—though some reviewers suggest it's a bit more literal. The absent chapter/verse numbering would also be a problem for some people (me especially!).
Here's a comparison of some common translations for Pss 74:8 (for example); I'd be happy to share other verses/comparisons if you were interested, but this may give you a starting point for other translations that fit your interests (or more to avoid haha):
Psalm 74:8 -
ESV: They said to themselves, “We will utterly subdue them”; they burned all the meeting places of God in the land.
MEV: They said in their hearts, “Let us destroy them together.” They have burned up all the meeting places of God in the land.
NASB95: They said in their heart, “Let us completely subdue them.” They have burned all the meeting places of God in the land.
LSB: They said in their heart, “Let us completely subdue them.” They have burned all the meeting places of God in the land.
ASV: They said in their heart, Let us make havoc of them altogether: They have burned up all the synagogues of God in the land.
CSB: They said in their hearts, “Let’s oppress them relentlessly.” They burned every place throughout the land where God met with us.
HCSB: They said in their hearts, “Let us oppress them relentlessly.” They burned down every place throughout the land where God met with us.
NET 2nd ed.: They say to themselves, “We will oppress all of them.” They burn down all the places in the land where people worship God.
BSB: They said in their hearts, “We will crush them completely.” They burned down every place where God met us in the land.
LES2 (Pss 73:8): They said in their heart, their kindred altogether, “Come and cease the feasts of the Lord from the land!”
(I included the Lexham English Septuagint 2nd Ed for fun... because why not!)
Catholics don't believe sola scriptura, which is a fairly recent Protestant doctrine, instead viewing scripture and sacred tradition as pillars of faith, and the Immaculate Conception is a dogma originating in sacred tradition, not scipture.
So its not surprising that a textual search of the Bible (even if using a text that Catholics would use, which I don't think this does) would whiff hard on this.
In consolation I sat up a vector index of The Works of Josephus (his interest at the time) and a StableBeluga chatbot. It answered questions fairly well, but most importantly supplied the references that were used as context. In the end there was still just too much cultural and historical context missing to be a useful alternative to scholarly analysis.
A model could be retrained and finetuned and corrected and double-checked on a limited corpus, until it would be able to discuss and explain something very very well in a particular subject.
Such things could be used in education, I imagine. Like an extra, never tiring teacher.
Any of the output should only be suggestions to base off further research, and a big disclaimer that this is only logical Inference
This was my first thought when seeing the project. How well do we expect LLMs to work for text where words often don't have their normal meaning, half the things shouldn't be taken literally, and we have lots of contradictions? This feels like it should have way more warnings than ChatGPT itself.
So as a test I asked this service 'what is balm in Gilead' and it returned 4 other Bible sentences. Pressed 'Summarize', which unfolded comments on the 4 sentences and a summary of
'Overall, these passages present Gilead as a contested but fertile region east of the Jordan river. It was prized territory that was given to several Israelite tribes and seen as a divine provision. The name "Gilead" means "hill of testimony" referring to its choice lands. So the metaphor of "balm in Gilead" signifies the healing, restoration, and provision God can bring even in difficult times.'
My key observations:
1) The overall summary highly matches my own interpretations
2) Jer 8:22 was not referred - possibly because it does not define the concept, it just refers to its meaning
3) Inferring the summary from the 4 sentences is not easy but apparently AI can do so
I have a question on the generation of the overall summary: Is it based on on the 4 sentences only or does it include other biblical text behind the scenes?
One thing we also added is imagery, generated by AI, which gives the Bible imagery that most text based bibles do not have.
iOS: https://apps.apple.com/us/app/noahs-bible-ai-powered-bible/i... Android: https://play.google.com/store/apps/details?id=com.ai.noah