[{"data":1,"prerenderedAt":336},["ShallowReactive",2],{"project-35764355":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":29,"sentiment":30,"stance_mix":31,"scored_comments":35,"aspects":36,"strip":42,"post_text":45,"what":46,"said":92,"maker_in_thread":214,"shape":225,"grid":229,"attempts":298,"same_week":299,"maker_shows":258,"maker_hidden":328,"reader_version":329,"card":330},"35764355","EVA","AI-Relational Database System","title","Show HN: EVA – AI-Relational Database System","https:\u002F\u002Fgithub.com\u002Fgeorgia-tech-db\u002Feva","github.com","jarulraj",1682873521,2023,237,36,212,3109,7,"notable","data","ai-relational database","library",[24,25,26,27,28],"ai database","deep learning queries","sql machine learning","query optimizer","multimodal database","curious",0.019,{"positive":32,"neutral":33,"mixed":32,"critical":34},1,14,0,16,{"docs":37,"idea":38,"execution":39,"privacy":40,"performance":41},{"positive":34,"critical":34},{"positive":32,"critical":34},{"positive":34,"critical":34},{"positive":34,"critical":34},{"positive":34,"critical":34},[43,34,43,34,43,34,43,34,44,34,43,34,43,34,34,34,43,34,43,34,43,34,34,34,43,34,43,34,43,34,43,34,43,34,43,34],3,5,"Hi friends,\n\nWe are building EVA, an AI-Relational database system with first-class support for deep learning models. Our goal with EVA is to create a platform that supports AI-powered multi-modal database applications operating on structured (tables, feature vectors, etc.) and unstructured data (videos, podcasts, pdf, etc.) with deep learning models. EVA comes with a wide range of models for analyzing unstructured data, including models for object detection, OCR, text summarization, audio speech recognition, and more.\n\nThe key feature of EVA is its AI-centric query optimizer. This optimizer i",{"problem":47,"audience":56,"pricing":56,"motivation":56,"time_to_build":56,"stack":57,"openness":89,"stage":90,"team_size":91},{"value":48,"source":49,"evidence":50},"Querying unstructured data like video and images with deep learning models is costly and cumbersome; caching and predicate reordering cut inference cost and time","maker",[51,53],{"id":52},"post",{"id":54,"by":11,"text":55},"35773608","Great question! Besides improving usability, the key feature of the EVA database system is the query optimizer that seeks to speed up exploratory queries over a given dataset and…",null,[58,65,71,77,83],{"value":59,"source":60,"evidence":61},"Python","inferred",[62],{"id":63,"by":11,"text":64},"35779069","Thanks for the clarifications. Token summation is a cool optimization :) Query optimizers in SQL database systems typically optimize based on the time to execute the function on…",{"value":66,"source":49,"evidence":67},"PostgreSQL",[68],{"id":69,"by":11,"text":70},"35767336","Thanks for the helpful suggestion! EVA uses an SQL database system for managing structured data using sqlalchemy. It runs on PostgreSQL out of the box. You only need to provide…",{"value":72,"source":49,"evidence":73},"SQLite",[74],{"id":75,"by":11,"text":76},"35769002","Hey Simon! Thanks for sharing this. I have long admired your work on Datasette :) We will check out your posts for ideas on coping with prompt injection. I just came across your…",{"value":78,"source":49,"evidence":79},"FAISS",[80],{"id":81,"by":11,"text":82},"35767496","Thanks for following up on this. We designed EVA from scratch for managing unstructured data (e.g., video, audio, images, etc.). EVA leverages relational database systems to…",{"value":84,"source":49,"evidence":85},"Hugging Face pipelines",[86],{"id":87,"by":11,"text":88},"35773377","Great question! Yes, EVA supports NLP pipelines thanks to our recent integration of Hugging Face pipelines last month. Here is an illustrative text classification application:…","open_source","launched","team",{"praise":93,"objections":113,"requests":138,"questions":169,"alternatives":194},[94,106],{"value":95,"source":96,"evidence":97},"Declarative SQL composition of models is a useful idea","commenter",[98,102],{"id":99,"by":100,"text":101},"35766959","potatoman22","I'm having trouble understanding what this does. Does it let you compose models via a SQL-like syntax?",{"id":103,"by":104,"text":105},"35770031","heyzk","Is the benefit here that EVA supports a declarative style of composition over LangChain's (or similar) imperative style?",{"value":107,"source":96,"evidence":108},"Caching and token-cost optimization are interesting",[109],{"id":110,"by":111,"text":112},"35775451","simonw","You can cache function results yourself in Python if you want to - my implementation also sums up the tokens used by the calls to the functions. Influencing optimization isn't…",[114,121,131],{"value":115,"source":96,"evidence":116},"Lacks obvious SQL-based demos; examples are hard to find",[117],{"id":118,"by":119,"text":120},"35767470","dmix","I personally wouldn’t put the Emotion one first on the GitHub README, that was the only one I opened, before clicking the license plate one and a) see it was a whole other GitHub…",{"value":122,"source":96,"evidence":123},"Unclear whether it is a new database engine or a caching layer",[124,128],{"id":125,"by":126,"text":127},"35767178","startupsfail","Could you turn this into a psql extension? If this is integrated into an actual database that can be used in production, this may have a future. Otherwise no one will touch this,…",{"id":129,"by":126,"text":130},"35767438","Nice. I’ve skimmed over the documentation and it wasn’t clear. It looked like the database was designed from scratch. If this is a caching\u002Fsyntactic sugar over a mix of DB and…",{"value":132,"source":96,"evidence":133},"No prompt injection safeguards",[134],{"id":135,"by":136,"text":137},"35766766","catiopatio","How are you guarding against prompt injection attacks, e.g. either in the queried data, or in untrusted query parameters?",[139,149,155,162],{"value":140,"source":96,"evidence":141},"Support for self-hosted local LLMs",[142,146],{"id":143,"by":144,"text":145},"35766160","la64710","Very nice… any plans for supporting self hosted LLMs like BERT LLAMA etc?",{"id":147,"by":144,"text":148},"35766407","Great but personally I am interested in locally runnable LLM models instead of sending data to the cloud service like chatGPT.",{"value":150,"source":96,"evidence":151},"Weighted similarity search",[152],{"id":153,"by":126,"text":154},"35767593","Do you support weighted similarly search? I.e. when I have several embeddings and need to put a weight factor in front of the cosine similarity when I’m performing a query? Faiss…",{"value":156,"source":96,"evidence":157},"Remote GPU support",[158],{"id":159,"by":160,"text":161},"35768319","zmmmmm","thanks, that's great! I guess though I was curious if the GPU has to be on the server itself, or if it's able to harness a remote GPU. Since the database server is likely to be…",{"value":163,"source":96,"evidence":164},"NLP pipeline examples",[165],{"id":166,"by":167,"text":168},"35769876","shrikrishna","It appears from initial reading that it must be possible to support pure NLP tasks with this, but there weren't examples for these in the documentation, so I'm not sure. Does it…",[170,175,185],{"value":171,"source":96,"evidence":172},"Does it support NLP models?",[173,174],{"id":166,"by":167,"text":168},{"id":87,"by":11,"text":88},{"value":176,"source":96,"evidence":177},"What is the data privacy policy for uploaded files?",[178,182],{"id":179,"by":180,"text":181},"35787317","amunutep","This looks very interesting. I am thinking of testing it out to see its accuracy for text detection and extraction in multiple PDFs. This will sound like an amateur question, but…",{"id":183,"by":11,"text":184},"35787445","We are in the process of supporting a native `LOAD PDF` command. Meanwhile, you could convert each PDF into a series of images and load them using the `LOAD IMAGE` command. You…",{"value":186,"source":96,"evidence":187},"Can it run on a remote or cloud GPU?",[188,191],{"id":189,"by":160,"text":190},"35767652","Does this rely on local GPU compute on the database server? or can it integrate with cloud based or external GPU servers?",{"id":192,"by":11,"text":193},"35768428","Thanks for the clarification. EVA currently does not support remote GPUs. Our ongoing integration [1] of the Ray distributed compute framework [2] into EVA will soon allow us to…",[195,200,204,208],{"value":196,"source":96,"evidence":197},"LangChain",[198,199],{"id":103,"by":104,"text":105},{"id":54,"by":11,"text":55},{"value":201,"source":49,"evidence":202},"txtai",[203],{"id":54,"by":11,"text":55},{"value":205,"source":96,"evidence":206},"pgvector",[207],{"id":153,"by":126,"text":154},{"value":209,"source":96,"evidence":210},"Datasette ChatGPT SQLite function",[211],{"id":212,"by":111,"text":213},"35774159","The approaches look pretty similar. My chatgpt() function is pretty much the most basic possible implementation of that pattern - it's just a SQLite custom-SQL function written…",{"comments":215,"answered":216,"key":217},17,9,[218,219,222],{"id":87,"text":88},{"id":220,"text":221},"35766114","Thanks! Likewise :) Thanks for the suggestion! I just added links to the demo applications earlier in the README. All applications are Jupyter notebooks that you can open in…",{"id":223,"text":224},"35767511","Thanks for the helpful suggestion! Just reordered the examples in the README. Here are the illustrative queries: ``` -- Object detection in a surveillance video SELECT id,…",{"commenters":33,"max_depth":226,"maker_replies":215,"first_comment_mins":227,"lifespan_hours":228},8,170,45,[230,232,234,237,239,240,241,244,246,248,249,250,252,254,256,261,264,266,267,269,272,274,276,277,280,282,284,286,288,289,291,292,293,294,296,297],[166,34,43,231,167,34],"project\u002Fneutral\u002Fdocs",[87,34,34,233,11,32],"maker\u002Fneutral\u002Fexecution",[235,32,43,231,236,34],"35765938","ericlewis777",[220,32,34,238,11,32],"maker\u002Fneutral\u002Fdocs",[118,32,43,231,119,34],[223,32,34,238,11,32],[125,242,43,243,126,34],2,"project\u002Fmixed\u002Fidea",[69,242,34,245,11,32],"project\u002Fneutral\u002Fexecution",[129,242,44,247,126,34],"project\u002Fpositive\u002Fidea",[81,242,34,245,11,32],[153,242,43,245,126,34],[251,242,34,245,11,32],"35768091",[99,43,43,253,100,34],"project\u002Fneutral\u002Fidea",[255,43,34,245,11,32],"35766991",[257,258,34,259,260,34],"35767034",4,"other\u002Fneutral\u002Fnone","unixhero",[262,258,34,259,263,34],"35768822","v3ss0n",[179,44,43,265,180,34],"project\u002Fneutral\u002Fprivacy",[183,44,34,265,11,32],[135,268,43,265,136,34],6,[270,268,34,271,11,32],"35766800","maker\u002Fneutral\u002Fprivacy",[273,268,43,271,111,34],"35768868",[75,268,34,275,11,32],"maker\u002Fneutral\u002Fnone",[212,268,34,259,111,34],[278,268,34,279,11,32],"35774317","project\u002Fpositive\u002Fperformance",[110,268,43,281,111,34],"project\u002Fneutral\u002Fperformance",[63,268,34,283,11,32],"project\u002Fpositive\u002Fpricing",[143,18,43,285,144,34],"project\u002Fneutral\u002Fnone",[287,18,34,253,11,32],"35766376",[147,18,43,265,144,34],[290,18,34,231,11,32],"35766554",[103,226,43,253,104,34],[54,226,34,279,11,32],[189,216,43,281,160,34],[295,216,34,281,11,32],"35767838",[159,216,43,281,160,34],[192,216,34,281,11,32],[],[300,305,310,315,320,324],{"id":301,"name":302,"points":303,"category":304},"35781959","webfft",244,"creative",{"id":306,"name":307,"points":308,"category":309},"35762175","Frogmouth",240,"dev_tools",{"id":311,"name":312,"points":313,"category":314},"35745719","Polish Pixels",216,"games",{"id":316,"name":317,"points":318,"category":319},"35786242","Currl",123,"consumer_social",{"id":321,"name":322,"points":323,"category":309},"35764635","PySaaS",121,{"id":325,"name":326,"points":327,"category":309},"35758584","PineTool",95,false,"v2",{"id":331,"name":5,"line":6,"ai":328,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":332,"top":18,"kw":333,"maker":11,"domain":10,"tier":19,"attempts":34,"strip":334,"url":9,"mix":335,"praise":95,"objection":115,"sub":21},35764355,0.02,[24,25,26,27,28],"303030305030300030303000303030303030",[32,33,32,34],1793991064909]