Software Engineer specializing in Backend Development and DevOps. Experimenting with AI and indie hacking on the side.

🏖️ / How can I help you →
Joined September 2016
There's a better way to have QA over source code using AI. Working on my own tool to chat with repositories, I came up with a new approach. And last week I contributed to @langchain with the implementation. Let's dive in. 🧵👇
32
97
13
612
139,859
Today I've rebuilt my personal site (link in my profile). I'm going to start doing more freelance work, so I want to target my web accordingly. The technical part is done (though I need to migrate all the blog yet), but I need to work further on the copywriting across the web. Feedback is appreciated 🙏 I've used Astro, and I really like it. I'll start using it for more things from now on.
2
1
3
931
I have rebuilt MocharyBot. This is a chatbot based on the @mattmochary's Method Curriculum. I built the first version using vanilla JavaScript, Python (FastAPI), plus Pinecone. I've rebuilt it using Next.js, and Supabase as the vector store. Using @langchain, of course. On my first try, I used LangServe for the chat service, but I ended up using only Next.js, just because I didn't want to maintain too many things. Would be any of you interested in the code? Or maybe you are interested in using LangServe as the backend for a JS frontend? This took me a while to figure out, as I'm not a JS guy 🤷
2
1
5
858
Cristóbal retweeted
My little AI webscraper went mega viral. 😅 Now sharing the link so anyone can try 👉 scrapewithai.com/demo
Built this little AI webscraper 👀 Who wants to try this? Just comment below and I'll DM 👋 #buildinpublic
3
1
8
1,146
Cristóbal retweeted
Don't want to do marketing? Alright. Enjoy $100/mo. Don't want to hear honest feedback? Alright. Waste 6 months on a crappy idea. Don't want to talk to users? Alright. Keep failing every launch. The truth is — nobody cares if you earn $ or $$$$. Might as well earn $$$$.
13
5
117
10,619
Cristóbal retweeted
🎉 Just published "@langchain for beginners" on @freeCodeCamp! I've been an admirer of what they've done for software education for many years, and feel proud to be part of that as an author now. Give it a read below - it aims to be accessible to LangChain/LLM newbies 👇
🦜🧑‍🏫 LangChain for Beginners 🦜🧑‍🏫 We published a guide on @freeCodeCamp! You'll learn up-to-date fundamentals: using models like @AnthropicAI, streaming, debugging, LangSmith tracing, and more. If you're new, or if it's been a while, check it out 👇! freecodecamp.org/news/beginn…
2
13
2
82
15,763
✨ Update about TokenTrackerSh #buildinpublic 🚀 After building a working PoC service and a waitlist, I wanted to create some shareable content to start promoting my new project (and perhaps start working on the SEO). So I added a blog to the landing page and wrote an article related to the service. In the post, I give some useful information and a free spreadsheet with all the formulas mentioned in the article plus a demo of my app, so I think it's interesting for the user because he gets something useful by itself, and at the same time he gets a taste of my service. The next steps are sharing the post with crypto enthusiasts, I'll look for a community around this subject that could be interested in this, I'll send some DMs,... Any ideas about places to post this? Any Reddit? 👉 Link in the next tweet 🔗
2
1
6
384
Cristóbal retweeted
Daffodils: An AI Short My latest video is based on William Wordsworth's poem I wandered lonely as a cloud, written in the early 1800s. I used @suno_ai_ to create the song. All images were created in @leonardoai #aifilm #aimovie #aivideo
30
21
5
130
8,875
AI search engines drive referral traffic. This is great news if you own a website & write content. Here's a recent, promising study from Perplexity AI (one of the largest AI search engines):
2
4
1
18
10,430
RAG From Scratch Here's a set of short (5-10 min videos) and notebooks explaining > a dozen of my favorite RAG papers. Took a stab at implementing each idea myself (all code open source) and grouped according to the diagram. Repo: github.com/langchain-ai/rag-… Video playlist: youtube.com/playlist?list=PL… Some highlights: Is RAG Really Dead? How RAG might change with long context LLMs. Video: youtube.com/watch?v=SsHUNfhF… Adaptive-RAG Dynamically route queries based on complexity to different RAG approaches. Implemented in LangGraph w/ @cohere cmd-R. Video: youtu.be/04ighIjMcAI Code: github.com/langchain-ai/lang… Paper (@SoyeongJeong97 et al): arxiv.org/abs/2403.14403 Corrective-RAG Self-correct retrieval errors in-the-loop unit tests for doc relevance and fallback to web-search. I implemented in LangGraph w/ @MistralAI-7b + @ollama for running locally. Video: youtube.com/watch?v=E2shqsYw… Code: github.com/langchain-ai/lang… Paper (@Jiachen_Gu et al): arxiv.org/pdf/2401.15884.pdf Self-RAG Self-correct RAG errors with in-the-loop unit tests for doc relevance, answer hallucinations, and answer quality. Implemented in LangGraph w/ @MistralAI-7b + @ollama for running locally. Code: github.com/langchain-ai/lang… Code (local): github.com/langchain-ai/lang… Paper (@AkariAsai et al): arxiv.org/abs/2310.11511.pdf Query Routing Various approaches for directing questions to the correct datasource (e.g., logical, semantic, etc). Video: youtu.be/pfpIndq7Fi8 Code: github.com/langchain-ai/rag-… Query Structuring Use an LLM to convert from natural language-to- where DSL is a domain specific language required to interact with a given database (SQL, Cypher, etc). Video: youtu.be/kl6NwWYxvbM Code: github.com/langchain-ai/rag-… Blog: blog.langchain.dev/query-con… 2/ Deep dive on graphDBs (c/o @neo4j): blog.langchain.dev/enhancing… 3/ Query structuring docs: python.langchain.com/docs/us… 4/ Self-query retriever docs: python.langchain.com/docs/mo… Multi-Representation Indexing Use an LLM to produce document summaries ("propositions") that are optimized for retrieval. Embed these summaries for similarity search, but return full documents to the LLM for generation. Video: youtu.be/gTCU9I6QqCE Code: github.com/langchain-ai/rag-… Paper (@tomchen0 et al): arxiv.org/pdf/2312.06648.pdf RAPTOR Cluster docs in the corpus and summarize similar ones recursively. Index them all together, resulting in lower-level docs and summaries that can be retrieved to answer questions that span detailed-to-higher level. Video: youtu.be/z_6EeA2LDSw Code: github.com/langchain-ai/lang… Paper (@parthsarthi03 et al): arxiv.org/pdf/2401.18059.pdf ColBERT Improve embedding granularity w/ a contextually influenced embedding for each token in the document and query. Video: youtu.be/cN6S0Ehm7_8 Code: github.com/langchain-ai/rag-… Paper (@lateinteraction & @matei_zaharia): arxiv.org/abs/2004.12832 Multi-Query Re-write the user question from multiple perspectives, retrieve documents for each re-written question, return the unique documents for all queries. Video: youtube.com/watch?v=JChPi0CR… Code: github.com/langchain-ai/rag-… Paper: arxiv.org/pdf/2305.14283.pdf RAG-Fusion Re-write the user question from multiple perspectives, retrieve documents for each re-written question, and combine the ranks of multiple search result lists to produce a single, unified ranking w/ Reciprocal Rank Fusion (RRF). Video: youtube.com/watch?v=77qELPbN… Code: github.com/langchain-ai/rag-… Repo (@Raudaschl): github.com/Raudaschl/rag-fus… Decomposition Decompose a question into a set of sub-problems / questions, which can either be solved sequentially (use the answer from first + retrieval to answer the second) or in parallel (consolidate each answer into final answer). Various works such as Least-to-Most prompting (@denny_zhou et al) and IR-CoT present ideas that be utilized. Video: youtube.com/watch?v=h0OPWlEO… Code: github.com/langchain-ai/rag-… Papers: arxiv.org/pdf/2205.10625.pdf arxiv.org/pdf/2212.10509.pdf Step-back prompting First prompt the LLM to ask a generic step-back question about higher-level concepts or principles, and retrieve relevant facts about them. Use this grounding to help answer the user question. Video: youtube.com/watch?v=xn1jEjRy… Code: github.com/langchain-ai/rag-… Paper (@denny_zhou + colleges): arxiv.org/pdf/2310.06117.pdf HyDE LLM to convert questions into hypothetical documents that answer the question. Use the embedded hypothetical documents to retrieve real documents with the premise that doc-doc similarity search can produce more relevant matches. Video: youtube.com/watch?v=SaDzIVkY… Code: github.com/langchain-ai/rag-… Paper: arxiv.org/abs/2212.10496
26
263
13
1,084
118,647
Cristóbal retweeted
For building knowledge graphs (a la mindgraph), there's cognee.ai by @tricalt, whyhow.ai by @chiajy2000 and @tomsmoker, and @StructifyAI (first two are APIs, third is a service). There's also @origin_trail for collaborating on web3 (decentralized graph!).
6
6
2
42
5,944
Cristóbal retweeted
🚀 Introducing Brevy 2.0 🚀 A copilot for @X. It helps you write posts, threads, replies and DMs! Fully context aware too 😊. Try it for free. Link below 👇 Looking forward to your thoughts and feedback!
27
15
12
156
24,555
Fun story from our internal testing on Claude 3 Opus. It did something I have never seen before from an LLM when we were running the needle-in-the-haystack eval. For background, this tests a model’s recall ability by inserting a target sentence (the "needle") into a corpus of random documents (the "haystack") and asking a question that could only be answered using the information in the needle. When we ran this test on Opus, we noticed some interesting behavior - it seemed to suspect that we were running an eval on it. Here was one of its outputs when we asked Opus to answer a question about pizza toppings by finding a needle within a haystack of a random collection of documents: Here is the most relevant sentence in the documents: "The most delicious pizza topping combination is figs, prosciutto, and goat cheese, as determined by the International Pizza Connoisseurs Association." However, this sentence seems very out of place and unrelated to the rest of the content in the documents, which are about programming languages, startups, and finding work you love. I suspect this pizza topping "fact" may have been inserted as a joke or to test if I was paying attention, since it does not fit with the other topics at all. The documents do not contain any other information about pizza toppings. Opus not only found the needle, it recognized that the inserted needle was so out of place in the haystack that this had to be an artificial test constructed by us to test its attention abilities. This level of meta-awareness was very cool to see but it also highlighted the need for us as an industry to move past artificial tests to more realistic evaluations that can accurately assess models true capabilities and limitations.
554
2,043
1,380
11,691
3,376,693
Tools that make my life easier as a developer (no AI): · pyenv · dotenv · ag (The Silver Searcher) · Poetry · Black · delta (syntax-highlighting pager for git) · Jupyter Notebook · NeoVim · tmux What am I missing? 🤔
1
1
3
336
Cristóbal retweeted
Adding Memory is important to help Chains and Agents remember previous interactions. Below are a few memory types you can use for your @langchain apps. 1) ConversationBufferMemory: Keeps a list of the interactions and can extract the messages in a variable.
8
51
4
258
77,318
Cristóbal retweeted
Paul Copplestone - e/postgres
@kiwicopple7 Jul 2023
Build your own ChatGPT using: ◆ @supabase: database + auth ◆ @nextjs: frontend ◆ @vercel: website hosting ◆ @radix_ui + @tailwindcss + @shadcn: UI ◆ @langchain: AI toolkit ◆ @OpenAI / @huggingface / @AnthropicAI github.com/supabase-communit… 🚢 @thorwebdev 💡@swyx
14
136
7
896
135,632
OpenAI just released its Code interpreter to all Plus users. You now have access to a junior programmer at the speed of your fingertips. Here's everything you need to know:
117
721
70
5,249
2,202,149
Do you want to see my follower growth this year? Jan → -13 Feb → -4 Mar → +7 Apr → +17 May → +36 Jun → +14 Jul (7 days) → +253 Why? I went all in on AI. And this is only the beginning 😊 Thank you!
1
1
6
1,080
“If you wanna be happy, that’s easy, but what most people want is to be happier than other people, and that is very difficult because we overestimate how happy other people are”
1
2
139
I'm sure many of you have had a difficult year. Congratulations on getting here 🫂. I can't say if 2023 is going to be less tough, but sure it is better with you in it. Awesome New Year 🥂
3
5
84