LlamaIndex: Unleash the power of LLMs over your data
llamaindex.ai
llamaindex.ai
1. Pulling in your schema information and structuring it in a way LLM's can reason about it
2. Pulling in your prior query history against the database to understand how you actually use your data (e.g. what JOIN's are common, what tables are used most frequently, etc.)
3. Adding context from other tools you may be using (e.g. we can pull in metadata and tests from your dbt project)
We also have a Slackbot you can add to your #urgent-data-requests channel. If you @Definite in a thread, it'll parse out messages that can be converted to SQL tasks and return the answer from your database.
You could certainly build this yourself with (or without) LlamaIndex, but it's still quite a bit of work to set up.
IMO a semantic layer makes it so easy to query that natural language querying is often not beneficial, even for business users. I take a hybrid approach of the semantic layer solving >95% of use cases and custom SQL as needed in backend processing.
Wrt llmindex, the new tools like vector dbs & llmindex have been interesting. Fine-ish for our self-hosted, but most start getting tricky when a multi-tenant SaaS where we lower costs for teams and users by sharing infra yet need sharing boundaries.
We're SOC2 compliant which has been enough for many companies to get comfortable with security / data handling practices.
I would open source it if I had decent experience with OSS.
If anyone with OSS maintainer experience wants to help with that - ping me.
Still, would you mind sharing the use case and the outcome? I have a couple of clients interested in similar solutions, but so far the potential outcome of this approach doesn't look promising.
We building a natural language chat interface for structured data. It can handle small csv files to large databases(500+ tables) seamlessly.
I feel sorry for the amazing team behind this great library. Changing names is hard.
'Today, we’re kicking off a rebrand of @gpt_index to : LlamaIndex '
Meta announcing LLaMa 24 feb 2023 https://ai.facebook.com/blog/large-language-model-llama-meta...
s/Llama/GPT-/g
Sometimes developers come up with creative and interesting names for their products, but other times they fail miserably.
Large LAnguage Model Meta AI
Not saying they're not entitled to use the name too, but laying the blame on the developers of LlamaIndex when they had no idea that LLaMA was coming isn't fair to them.
We love the feedback, and one main point especially seems to be around making the docs better: - Improve the organization to better expose both our basic and our advanced capabilities - Improve the documentation around customization (from LLM's to retrievers etc.) - Improve the clarity of our examples/notebooks.
Will have an update in a day or two :)
Is this something similar, but with the added feature of being able to query the data with the help of a LLM?
Like: Find me all the text files which I've modified last month, there should be one containing a log snippet with a TODO I added to it.
For instance, there is a tree structure for storing the embeddings and the library is able to construct it with a single line. However, I couldn’t find an clear explanation of how that tree is constructed and how to take advantage of it.
Also, check out LlamaHub - lots of examples.
The main problem is the documentation is too disorganized, it's hard to figure out what even is the default and what are the configuration options, documentation is spread over a bunch of tutorials, reference pages, and blog posts by the founder. Sometimes the example code doesn't quite work because the library is changing so quickly.
We'll see if the community can figure out the best set of useful abstractions for this domain -- right now LlamaIndex is a mess and makes building things harder instead of easier and it's probably simpler to roll your own solution from scratch. However, the founders seem pretty smart, so hopefully with some time, they'll improve it and make it more usable.
Retrieval involves complex integration (not just data connectors and open API wrappers), and meaningful rerank requires domain/context-specific trained models (that you can deploy performantly and cost effectively). If you’re doing these things, you’re well beyond the capability at platform scale vs what a python library provides
I have been playing with langchain and llamaindex a bit.
I like the data loading abstraction and am very curious why you say it doesn't work? It uses ChatGPT for the reranking.
Id be more bullish on paradigm (platform/cloud level) shifts vs connectors, wrappers, and utility functions
Ymmv and to be fair I haven’t tried to scale these tools. I have worked on scaled platforms around embedding retrieval and rerank (including LLMs) so it’s just my take.
1. You ETL your documents into a vector database - you run this pipeline everyday to keep it up to date. You can run scalable, robust pipelines on Spark for this.
2. You have a streaming inference pipeline that has components that make API calls (agents) and between them transform data. This is Spark streaming.
Prophecy is working with large enterprises to implement generative AI use cases, but they don’t talk so much on HN. Here’s our talk from Data+AI Summit:
Build a Generative AI App on Enterprise Data in 13 Minutes
https://www.youtube.com/watch?v=1exLfT-b-GM
Here’s a blog/demo
https://www.prophecy.io/blog/prophecy-generative-ai-platform...
They've aimed to make a framework that starts concise and simple, has useful defaults, then lets you adjust or replace specific parts of the overall "answer questions based on a vectorized document collection" workflow as needed.
This works well overall, but some bits have kept me scratching my head for hours. Partly due to huge holes in the documentation when it comes to specifics ("plenty of examples but little documentation" another commenter wrote and I agree). Partly due to the frenetic release schedule, this project is highly active even by frothy LLM craze standards and interfaces change rapidly.
Overall recommend, LlamaIndex has helped me make good progress on my project
It still needs a lot of work, but the goal is to decouple tools from LLM business logic (e.g. you would bring your on vector retrieval logic)
This stuff is like redis. Great for the infra folks
Langchain is like ruby on rails. Great for the AI app devs
There is overlap, where you might start and stay on langchain as a kitchen sink... But as you do full app dev, esp SaaS, the bottom starts falling out for more data infra centric tooling.
Ex: For some of our use cases for more-text data sources and APIs we are helping folks index for Louie.ai, we do ingest-time embedding into persistent vector DBs for the raw, and are looking at llmindex and others for more ephemeral run-time caching of post-proccessed results. Ex: Pre-embed 1GB of text for fast search, but then only cache ad-hoc genAI task results on those, like classifications. We may still want to persist the embedded task results for other reasons, so not obvious.
If figuring out that kind of thing for use cases like analysts talking to DBs for cyber investigations, supply chain, emergencies, etc, we are actively hiring in backend engineering (remote): https://www.graphistry.com/careers, who build louie.ai