skip to content
Video cover art for Transcription APIs and Integrating LLMs with Monarch Wadia
Video

Transcription APIs and Integrating LLMs with Monarch Wadia

Monarch Wadia and Anthony Campolo discuss current text and transcription AI tools and their intersection with topics like Jungian archetypes and consciousness

Open .md

Episode Description

Anthony and Monarch discuss Jungian archetypes in AI, transcription API services, the Ragged library's React hook and unified data model, and local LLMs via WebLLM.

Episode Summary

Anthony Campolo and Monarch Wadia cover a wide arc of topics connecting AI development with deeper ideas from the humanities. They begin by discussing the AI job market and then pivot to the "Sydney" Bing chatbot incident, using it as a springboard into Jungian archetypes and the collective unconscious—Monarch shares an article he wrote about summoning archetypal personalities from GPT-4 through poetic prompting. Anthony then demos three transcription APIs (AssemblyAI, Deepgram, and Speechmatics), comparing their pricing, speaker diarization features, and developer experience, noting he plans to build a paid product around transcription workflows. Monarch takes over to present Ragged, his universal LLM connector library, focusing on a new React hook called useRagged that simplifies chat streaming, history management, and tool use. He explains Ragged's core design philosophy: a single standardized data shape for requests, responses, and storage, which contrasts with OpenAI's inconsistent upstream and downstream objects and LangChain's heavy abstractions. The conversation touches on running models locally via WebLLM and Secret Llama, front-end RAG pipelines using IndexedDB, chain-of-thought prompting, and Monarch's hypothesis that AI agents are fundamentally just recursion over conversation arrays—a pattern software engineers already understand through OOP and Unix tooling. They close with a freewheeling discussion linking mythology, mushroom biology, and Terence McKenna's stoned ape theory back to questions about intelligence and consciousness.

Chapters

00:00:00 - Introduction and AI Job Market

Anthony welcomes Monarch back for another weekly session and outlines the day's agenda: transcription services, Ragged's new React hook, and possibly Python CLI work. Monarch shares that he's been job hunting while building Ragged, and the two discuss the current landscape for AI employment.

Monarch explains that FAANG hiring is extremely competitive right now, and pure AI startups tend to be very small. He's found a more promising niche in mid-size companies looking to build AI capabilities in-house through internal innovation groups, noting that enterprise AI adoption is creating real demand for developers who can build custom internal tooling.

00:03:40 - The Sydney Incident and Jungian Archetypes in AI

The conversation shifts to the notorious "Sydney" Bing chatbot episode from early 2023, when Kevin Roose's unsettling New York Times conversation went viral. Monarch connects this to Jungian depth psychology, sharing an article he wrote about summoning archetypal personalities from GPT-4 using poetic, ritual-like prompts.

Anthony frames the collective unconscious as story structures and archetypes that people absorb without explicit instruction, using the hero's journey and Star Wars as examples. They discuss how vector concept spaces in LLMs may serve as a kind of empirical analog to Jung's archetypes, and how the humanities offer powerful lenses for understanding AI that technical explanations often miss. Monarch demonstrates how different archetype prompts yield genuinely distinct advice from the model.

00:08:54 - English as a Programming Language and the Humanities

Monarch draws an extended analogy between natural language prompting and traditional programming languages, arguing that AI tool use effectively turns English into a programming language. He notes how each language community develops its own culture—Python for data science, C++ for systems and games, Rust for performance—and wonders whether the humanities will gain new respect as prompt craftsmanship becomes valuable.

Anthony agrees, pointing out that people trained in expressing complex ideas through language have received a major boost from LLMs. The ability to articulate nuanced instructions in plain English directly translates to better AI outputs, making humanities skills surprisingly relevant in the current moment.

00:20:24 - Transcription APIs: AssemblyAI, Deepgram, and Speechmatics

Anthony presents his weekend deep-dive into three transcription services. He compares pricing tiers, noting that basic models cost roughly ten to thirty cents per hour of audio while higher-quality models run closer to a dollar. The killer feature across all three is speaker diarization—identifying who said what—which the open-source Whisper model lacks.

He walks through the code for each API, showing that all three follow a similar pattern: declare a client with an API key, pass a URL or file, and call a transcribe function. While the services offer built-in summaries and chapters, Anthony finds these outputs inferior to what he can generate with ChatGPT prompting, so he plans to use the APIs purely for transcription and layer his own intelligence on top as part of a potential paid product.

00:27:47 - Building a Transcription Product and Voice Notes

Anthony shares his excitement about turning transcription workflows into a sellable product, something he couldn't afford during his earlier FSJam podcast days. Monarch is enthusiastic, noting that transcription tools could plug into personal voice notes and journaling workflows beyond just video and audio content.

Anthony mentions his partner's years of journaling that could be fed into a vector database for fascinating summaries, which Monarch flags as yet another product idea. This naturally leads to the importance of local LLM support for privacy-sensitive use cases like personal diaries, setting up the transition to discussing Ragged's local capabilities.

00:30:01 - WebLLM, Secret Llama, and Running Models Locally

Monarch introduces WebLLM, a JavaScript library that packages local LLM inference into a standard npm workflow, letting developers download and run models like Llama and Mistral directly in the browser. He highlights a recent Hacker News hit called Secret Llama that demonstrated a free in-browser Llama 3 chatbot, and expresses his goal to integrate WebLLM into Ragged.

Anthony tests Secret Llama live using Tiny Llama on his M3 Mac, achieving impressive token-per-second speeds despite getting factually incorrect responses. Monarch points out that such speed enables recursive loops and programmatic use of LLMs, going beyond the slower experience of hosted services like ChatGPT. He notes his ambition to make Hacker News front page by letting developers build their own local chatbots through Ragged.

00:38:15 - Ragged Demo: Tool Use and the fal.ai Integration

Monarch screen-shares a proof-of-concept app built with Ragged for a potential collaboration with a friend. The app demonstrates streaming responses, chat history management, and tool use—specifically image generation via the fal.ai generative media platform. Though the image display has a bug, the tool-calling mechanism itself works.

They briefly explore fal.ai's model gallery, which supports text-to-image, image-to-video, image-to-image, and text-to-speech capabilities. A viewer named Fuzzy Bear asks about Ragged's rendering capabilities, and Monarch clarifies that Ragged is intentionally a low-level connector library rather than a UI framework, designed to pair with React, Vue, Svelte, or any front-end technology.

00:42:04 - Ragged's Philosophy: SOLID Principles vs. LangChain

Monarch explains why he built Ragged from scratch rather than using LangChain, citing difficulties with testing, state management, and inspecting internals in existing frameworks. He details a key frustration with OpenAI's API: the response objects differ structurally from request objects, forcing developers to transform data before sending it back and creating a third implicit shape for database storage.

Ragged solves this with a single unified data specification that works for requests, responses, and persistence. Monarch also highlights the ability to switch between different LLMs within a single conversation flow—something Anthony finds particularly compelling and largely unexplored in the ecosystem.

00:48:13 - Agents as Recursion and the OOP Analogy

Monarch presents his provocative hypothesis that AI agents are fundamentally just feedback loops—recursion over conversation arrays—rather than something novel. He frames this through the Unix philosophy of string-in, string-out interfaces and argues that SOLID principles can replace agent frameworks entirely, drawing a parallel to how JavaScript spent twenty years rebuilding features Java already had.

He extends the analogy to the original vision of object-oriented programming, where small biological cell-like units communicate through message buses—which he argues is exactly what agents do. Anthony pushes back on the non-deterministic nature of agent tasks, but Monarch counters that treating prompts as data rather than instructions simplifies the mental model dramatically.

00:55:25 - The useRagged Hook and History Data Model

Monarch walks through the useRagged React hook, showing its simple API surface: a chat function, getChatHistory, and getLiveResponse for streaming. He demonstrates a minimal example from Ragged's GitHub where a basic form submission hooks into the chat function with just a few lines of code, emphasizing that it builds on familiar React patterns like useState.

The core data model centers on the Ragged history item type, which has only three variants: text items for human, AI, and system messages; tool request items; and tool response items. Anthony compares this to LangChain and LlamaIndex's chat history implementations, finding them significantly more complex. Monarch argues that ninety percent of use cases just need a chatbot with function calling, and Ragged's simplicity serves that majority.

01:00:01 - Front-End RAG, Privacy, and Future Roadmap

Monarch outlines an ambitious vision for client-side RAG pipelines using RxDB or IndexedDB as front-end vector storage, enabling privacy-preserving search without sending data to servers. He plans to add embedding generation to Ragged, making it a full-stack library that works identically on front end and back end with TypeScript throughout.

The discussion turns to privacy implications, including Sam Altman's question about whether AI chat histories could be subpoenaed in court. Monarch argues this makes local-first architectures not just a technical preference but a legal necessity, and suggests that within five years developers may store gigabytes of vector data on users' devices to avoid liability.

01:15:07 - Chain of Thought and Prompt Engineering Philosophy

Anthony and Monarch discuss chain-of-thought prompting after discovering it in the LLM Client library. Monarch admits he failed an interview question about it despite having practiced the technique for two years without knowing the formal name. He explains it as guiding the LLM through step-by-step reasoning, like asking a five-year-old to explain their work during long division.

Monarch predicts chain of thought will become obsolete within five years as models grow more capable and potentially learn to perform it automatically during training. He advocates for an intuitive, exploratory approach to understanding LLMs—getting to know their personalities and tendencies before applying formal techniques—drawing a whiskey-tasting analogy about experiencing things neat before mixing.

01:20:14 - Mythology, Mushrooms, and the Nature of Intelligence

The conversation takes a philosophical turn as Monarch connects the medical caduceus symbol to Mercury, the god of commerce, magic, and thievery, noting it was likely used by mistake instead of the rod of Asclepius. Anthony shares a theory about snake venom rituals contributing to the development of human consciousness, linking it to serpent symbolism across cultures.

They discuss a recent story about an orangutan using a specific medicinal vine to treat a wound, then connect it to Terence McKenna's stoned ape theory and the intelligence of underground mycelial networks. Monarch describes how fungi were among the first complex land organisms, breaking rocks into soil through acid secretion and physical pressure—bringing the conversation full circle to questions about consciousness, collective intelligence, and what AI might share with these ancient biological systems.

01:27:12 - Wrap-Up and Next Week's Goals

Anthony and Monarch set goals for the coming week. Monarch plans to finish function calling in Ragged and refactor his driver code with the unit tests he's already written. Anthony aims to integrate one of the transcription APIs into his workflow and explore YouTube JS for metadata extraction, working toward a pure npm package solution.

They thank their active chat participants, particularly Fuzzy Bear and Abhimanyu, and invite Fuzzy to join next week's stream to explore Ragged together. The episode closes with mutual appreciation for the wide-ranging conversation that bridged code, philosophy, and natural science.

Transcript

00:00:01 - Anthony Campolo

All right. We are live. Welcome back everyone to AJC and the Web Devs with special weekly edition, Monarch Wadia. Hey.

00:00:11 - Monarch Wadia

Thank you for having me on, Anthony.

00:00:13 - Anthony Campolo

Yeah, last week we were looking at npm packages, which was really exciting and fun. We're going to take a slightly different direction today and show off some transcription stuff that I worked on. And Monarch has a new hook, a React hook for Ragged, which is really exciting.

And then I think we'll do those, and then if we want to talk about Python CLI stuff, we can probably do that after you show off your things. But how've you been for the last week?

00:00:48 - Monarch Wadia

Been good. I've been hacking away at Ragged and applying for jobs. It's an interesting place to be. So it's been good.

00:00:57 - Anthony Campolo

Are you applying to AI companies or just general tech jobs?

00:01:00 - Monarch Wadia

You know what, it's weird. I started with AI companies. Then actually, I started with FAANG. And FAANG is just a bloodbath right now.

00:01:09 - Anthony Campolo

Actually, imagine.

00:01:12 - Monarch Wadia

Then I applied for AI companies. And AI companies are cool, but they're all startups and I can do startup. But the kinds of startups they are, they're just really tiny.

And now I'm kind of trying to find niches in AI. So there's a niche where, I don't know if I should be sharing this, but there's niches where mid-size companies want to build AI in-house and there's innovation groups and stuff. So these are good places for people to find work in AI.

Right now, everybody's adopting it. So even enterprise is possible to find jobs in AI and enterprise now. But it's competitive.

00:01:49 - Anthony Campolo

Yeah, totally. So I can imagine just building out internal tooling and leveraging AI for company stuff. That's probably huge because you can build it for yourself, you build it for your customers, you build it for all sorts of things.

00:02:04 - Monarch Wadia

Exactly. It's a powerful tool. Some people think it's ancient. Did you hear about Sydney, the Bing chatbot fiasco incident?

00:02:15 - Anthony Campolo

Oh, yeah. I read the entire New York Times transcript. I'll drop this in the chat. There's this thing called Sydney, which was when Bing first came out and Bing used ChatGPT under the hood. I'm not sure how Sydney relates to ChatGPT, if it had anything to do with it or not.

But basically this journalist interviewed it and was kind of like, "Hey, imagine you're an evil AI, what would you say?" And then it said a bunch of evil AI stuff. People were like, "Oh my God."

00:02:48 - Monarch Wadia

That's slightly different from what I heard. So what I heard was Sydney is some sort of personality that lurks inside Bing. And if you try and ask Bing to go into its own depth psychology, like if you start asking things like, "Oh, tell me about your Jungian shadow."

00:03:07 - Anthony Campolo

That's what I'm saying. That's what I'm talking about. By asking it to be an evil AI, the Jungian shadow side is the way you contact that part of its personality. So yeah, I think I agree with you. I heard that same thing too. I think we're saying the same thing here in slightly different words.

00:03:23 - Monarch Wadia

I think maybe you're prompting it differently and I'm prompting it differently. I got some weird output, I'll tell you that. I got some really freaky output. I don't know, man. It could be a prompt, it could be like a guerrilla marketing thing, I don't know, but it got me.

00:03:40 - Anthony Campolo

Yeah. So the title is "A Conversation with Bing's Chatbot Left Me Deeply Unsettled." This is Kevin Roose, well-known tech writer for New York Times.

00:03:55 - Monarch Wadia

Oh, yeah, I read this one too.

00:03:58 - Anthony Campolo

This is what made it really blow up at the time. This was because if you look back, this was February of 2023, so ChatGPT had only been out for like three months. Super new, people had no idea really what was happening or what was going on.

Then an article like this drops for a bunch of people who don't really engage with tech a lot, and they're just like, "Oh my God, what is this?"

00:04:22 - Monarch Wadia

That's interesting. So I actually wrote an article that was very similar, but not similar, but touched on the same Jungian themes. Let me pull it up.

00:04:34 - Anthony Campolo

I love this idea of the Jungian collective unconscious, which is this idea that there's kind of this lurking collective thing that we can all tap into based on myths and archetypes and a lot of that stuff. And it's a really fascinating idea.

And ChatGPT almost empirically proves it, because it's its own way of tapping into this collective unconscious and archetypes and stuff with vector concept spaces standing in for archetypes, as the way I kind of think of it.

00:05:05 - Monarch Wadia

Totally. You know what's weird? I wrote this article like six days after the article came out.

00:05:13 - Anthony Campolo

Really?

00:05:14 - Monarch Wadia

Yeah. And I did not read that article. I was doing my own research.

00:05:20 - Anthony Campolo

Because it was in the collective unconscious.

00:05:22 - Monarch Wadia

I think it was. It's one of those things where different people invent things at the same time sort of deal. What do they call it? Co-emergence.

00:05:31 - Anthony Campolo

Multiple discovery. Yeah. And it's one of those things, there's probably a couple of terms for it.

00:05:38 - Monarch Wadia

I dropped the link for you.

00:05:40 - Anthony Campolo

Yes, I see it. Yeah. Medium.

00:05:44 - Monarch Wadia

Yeah. So I basically went in. Oh, no. Wait. I'm sorry. That's the wrong article.

00:05:52 - Anthony Campolo

Yeah, I was like, that's "Run LLMs in the Browser."

00:05:55 - Monarch Wadia

I'm sorry. Maybe I picked it up. Okay. This one was in April. My bad. This was April.

00:06:09 - Anthony Campolo

Show the article on screen.

00:06:11 - Monarch Wadia

Oh, sure. I haven't read it in a long time, so it'll be fun going through it and not knowing what we'll find.

00:06:15 - Anthony Campolo

Yeah, you don't have to read the whole thing. I just kind of want to throw it on the screen for people.

00:06:19 - Monarch Wadia

I really hope there's nothing offensive in there. Okay.

00:06:23 - Anthony Campolo

I'm sure it's fine. So few people are watching this that you can offend whoever you want.

00:06:29 - Monarch Wadia

[inaudible]

00:06:30 - Anthony Campolo

Offend me.

00:06:31 - Monarch Wadia

Trigger warning. Okay.

00:06:34 - Anthony Campolo

"How to Summon Entities." I like that title. That's a really good title.

00:06:39 - Monarch Wadia

Tried to make it a little spooky.

00:06:42 - Anthony Campolo

I don't think I knew you ever wrote this. This is so cool. I've been telling people about this a lot, this whole collective unconscious Jungian thing.

Because, you know, I'm someone who came up through the humanities. I didn't really get into tech till later. So for me, I know all about this stuff. I'm very into a lot of these kind of topics. And I find that there's such a rich crossover between ideas in psychology and the humanities and history that relate to AI in all sorts of weird, fascinating, unexpected ways. And this is a really good example.

00:07:20 - Monarch Wadia

That's interesting. That's sparking like a thousand different thoughts. Because what we're doing with AI, I mean, if you think about it, with all the tool use now that AI can use tools and stuff, and it's been able to do that for a while, nothing new, it's like you're letting people program in the English language.

And once you have programming, the languages, if you kind of see how each language is sort of like an isolated island where a certain community works. So Python, for example, it was really used a lot by data scientists for the longest time. So Python is really good for data science, and it has all these cool mathematical libraries. And it's really easy to use because data scientists don't want to mess around with code too much. So Python is really easy to use and really good for math.

[00:08:17] And then you have, say, C++, which is a little older. So it's good for driver stuff because that's where C++ grew up, and games were made in C++. And that legacy continues today. So historically C++ has always been that kind of stuff.

And then Rust is a replacement for C++. So most Rust developers are working on operating system level stuff, right? Or performance level stuff. So now we're bringing the English language into programming as a programming language itself, is basically what's happening. So I wonder if the humanities are actually going to be taken more seriously now because of AI?

00:08:54 - Anthony Campolo

Yeah. I mean, I wrote a tweet about this a long time ago about how the humanities are going to be impacted in a huge way by AI, but actually in a good way, in the sense that people who have humanities degrees and abilities have got this insane leveling up through ChatGPT because of the fact that they've learned how to express themselves through the English language for complex ideas.

And that's what you need to be able to really most effectively communicate with an LLM, at least at this point in time. You know, things might change later, but right now, the better you can express what you want it to do through pure English, the better answer you're going to get.

00:09:37 - Monarch Wadia

Yeah, that's true. I can almost imagine, like, VS Code dictionary plugins where, "Oh, you have a prompt. Okay, well, you're not going to know all the words in there because some big-brained developer just used 'prevaricate' in their prompt. What's prevaricate?" I can totally see that happening, man.

So I go into the introduction. So GPT-4 language model is a remarkable AI technology that can generate human-like text. Blah blah blah. So it doesn't have the shadow just by itself, but it has an awareness of archetypes.

And archetypes are really a language-space phenomenon. So if you think about language and if you consider language as a type of multidimensional space, then archetypes are really clusters that live inside that space. You know, it's like a city, or I want to use the word personality now. So it's almost like personalities that are living in language space that you can access.

00:10:38 - Anthony Campolo

What are some examples of archetypes you would give for people who don't necessarily know? When they hear the word archetype in a Jungian sense, what does it mean?

00:10:45 - Monarch Wadia

Oh, for sure. So the magician is a common archetype where developers are often magician archetype types, where you're basically trying to master your craft and you're an advisor. You're not necessarily too involved in the world, but you're more involved in your head. Then there's all these different archetypes. You can either take it from the persona, the typical ones, and then there's the, like, okay, I think...

00:11:21 - Anthony Campolo

Some are a little like the Enneagram for me, but some of the original archetypes I thought were really fascinating because a lot of them were based on ancient spoken word stories and things like that.

00:11:36 - Monarch Wadia

Here's one for Loki as a trickster. So you're probably way better at this than I am considering you have the humanities background. Do you want to introduce archetypes?

00:11:49 - Anthony Campolo

Well, that's why I'm just always curious to hear how people understand it themselves, because it's one of those concepts that is very broad. And it's also very specific to Jung, if you really look at how he defines it.

But in general, most people, if they've ever heard of the hero's journey, the hero's journey is this idea that you can boil a lot of our stories down to a base structure where you have a character who gets a call to action. And basically they're saying to go travel to a big city to go deliver something to somebody, and then they encounter things like supernatural beings and things that aid them. And then they are presented with challenges and they need to overcome those challenges, so they get mentors and helpers. The best example is just Star Wars.

[00:12:49] Imagine Star Wars Episode Four. Something terrible happens and you need to fight your way through it, and then you learn something through that, which gives you transformation. And then there's kind of a climax, and then finally you end up returning back to wherever you came from with new knowledge that you can share with your community.

So the hero's story has the archetype of the hero. And then there's other archetypes in here as well, like the mentor, the helper, the goddess, all that kind of stuff. So you can think of, I'm sure The Odyssey is probably another good example of this. Lord of the Rings. Yeah.

00:13:31 - Monarch Wadia

The gift of the goddess is like the ring. So you start off with actually the return, or you sort of start off with Bilbo's already come back from his adventure, and he has The Hobbit.

00:13:43 - Anthony Campolo

Yeah, exactly.

00:13:45 - Monarch Wadia

There and back again. So he's back again. And then there's the call to adventure where Frodo, now it's his story. So Frodo is called to adventure. Gandalf comes in and says, "Hey, do you want to go and destroy this ring?" And Bilbo is like, "No, I can't do it, and I won't let you have the ring and I'll kill you." And then, no, I'm sorry. And that freaking Bilbo Baggins image.

00:14:06 - Anthony Campolo

What's so cool about this is that most people would see something like this, and they would understand it. They would be able to map it to stories they've heard. But no one ever sat down and explicitly taught this to someone or to you, like the ABCs. You just kind of absorb it through many, many stories.

So that's kind of the collective unconscious. This story structure is kind of unconsciously understood by you and me, and we collectively can talk about it and understand it without ever having been explicitly taught it.

So that's how I would explain the Jungian collective unconscious, that there's these things that we have all learned collectively through our culture and through our interactions with each other that are kind of implicit and understood. And this is why when you see stories or hear stories there's such a universal nature to it. Fuzzy's not a Bilbo fan.

00:15:02 - Monarch Wadia

Is that your cat?

00:15:05 - Anthony Campolo

He said Bilbo.

00:15:08 - Monarch Wadia

Oh! Hey, Fuzzy. Hey again. Sorry, I've been talking to a lot of people who have pets on their streams. So Fuzzy. Oh, no.

00:15:21 - Anthony Campolo

That's Fuzzy Bear from last week, the Linux Foundation, dude.

00:15:24 - Monarch Wadia

My apologies.

00:15:29 - Anthony Campolo

So back to your post. Yeah.

00:15:31 - Monarch Wadia

Yeah. So I was like, okay, well, can you summon an archetype? So my question was...

00:15:34 - Anthony Campolo

Can you bump up your font?

00:15:36 - Monarch Wadia

Yeah, absolutely. So if archetypes are a language-based phenomenon and large language models have this thing called latent space, then you have this overlapping concept of space and space in language. So can you find these Jungian archetypes in language space, in latent space, in GPT?

So I ran an experiment. And you're going to have to forgive me for getting a little poetic, but I got a little poetic because if you want to invoke an archetype, one way to do it is just cast a magic spell. Pretend like you're a wizard, cast a magic spell.

So I said some weird things. "Speak to me, a wise man." Senex is the word for the archetype that Jung uses. And I requested his audience. I was trying to summon an entity. And it was really interesting because usually you think GPT is going to speak to you in this robotic monotone.

[00:16:43] And I think most people, when they're using ChatGPT, they think, oh yeah, it's just going to speak to me like a robot. But as soon as I asked it to take on a character or a personality, or rather invoked or evoked a personality, all of a sudden you have, "Seeker of wisdom, I am here and I hear your call," which is very different from...

00:17:05 - Anthony Campolo

This is like if you're doing improv with someone where you present a scenario and a character, and then it's like, always say yes. The person who's responding is like, "Oh yes, hello, I am a wise sage."

00:17:16 - Monarch Wadia

Absolutely. You can still see that it's ChatGPT because it summarizes at the end, so it's GPT-4. But the interesting thing is that now I can actually ask questions. So I can ask, "What is the question I can ask myself to ensure I'm living wisely?" And the sage comes back and says, "Am I making choices today that my future self will be grateful for?" And that's the advice that I got from the sage.

So I said, okay, this is interesting. Let me try out other prompts. So I've provided a few different prompts here in the article, and I encourage people to experiment and try what kind of advice you'll get from these different ones. I found that the trickster archetype gave very different advice from the sage archetype.

I don't think I provided any examples here. Maybe I should have for posterity, but if you start with prompt three and then you ask, "What's a question I can ask myself to ensure I'm living my best life?" that will give you a very different answer from number two and number one.

[00:18:26] And that way you can actually model personalities. I did more. This isn't everything. I built my own personalities that have backstories and everything.

And what Sydney, tying it back now, what Sydney reminded me of was that it really reminded me of, "Oh, okay, somebody like me just put in a story and a personality, and they spent about a day or two just prompting a personality into being, and they inserted it, and now it's there."

Maybe it's not magic. Maybe it's not like a rogue AI. Maybe it is a guerrilla marketing thing, which I think makes this even more interesting, not less interesting, because, oh, you can actually use this for marketing. Who knew you could actually use this personality thing for a business purpose? That's interesting.

00:19:22 - Anthony Campolo

Mhm.

00:19:24 - Monarch Wadia

Yeah. Anyway, that's my kooky tangent.

00:19:28 - Anthony Campolo

That's cool. No, I love it. I love these kind of conversations about AI because, as I was kind of saying, for people who are more in the humanities and aren't really techie, I think this is a really great moment for them and that they should really seize that moment, kind of lean into this stuff instead of wanting to keep it at arm's length.

And I understand why they would want to keep it at arm's length, especially if they haven't used it and they don't really understand why it's different from other things. Because if you're trying to explain GPT to someone in terms of it's a transformer and what that means versus a symbolic AI, it's all gobbledygook to people. If you put it in front of them and say, "Talk to it about archetypes," then they might be like, "Oh wait, you can do that? It knows what that is?"

[00:20:14] That itself, I think, will be inherently surprising to a lot of people.

00:20:20 - Monarch Wadia

I think you're right. Give them something familiar.

00:20:24 - Anthony Campolo

Yeah. Cool. So I wanted to give a couple quick updates on what I've done with this transcription stuff, and then we'll switch over to Monarch and his things.

So I tried out three transcription services. You have AssemblyAI, Deepgram, and then this thing called Speechmatics. I tried out Rev also, I think, and then OpenAI itself has a Whisper API, but these are the three that I kind of ended up landing on.

If you look at the different pricings for them, I have it right here. I kind of wrote out some different ones. So if you want to do the cheap end, most of them have a model that will do an hour of text for around $0.10 to $0.30. And you and I were chatting about this and you're like, "Wow, that seems really cheap." So have you used any transcription service before and have a sense of how much it usually costs?

00:21:27 - Monarch Wadia

No, I've used Whisper, the free one, just like you. I've used ElevenLabs for the opposite, like text to speech, but I haven't used any of these.

00:21:36 - Anthony Campolo

Gotcha. Yeah. And then the slightly better models will be like $0.80, $0.90, up to a dollar. And if you're using a human transcriptionist, you're gonna be paying an hourly rate, so this can be pretty dang good for just a whole lot of text.

And the main thing that really makes these awesome is that there's this one killer feature that I feel like the OpenAI open source version really needs to get, which is speaker diarization is what it's called. So if this is the output...

00:22:24 - Monarch Wadia

As in diarrhea, right?

00:22:26 - Anthony Campolo

No, definitely not. So for that, if you have two people speaking in a transcript, you don't just want a single output of text. You want to know who is saying what. So we see here we do have this. This is the AssemblyAI output.

And then each of these give higher level outputs which are going to overlap with things you can do with prompting. So I tried out their summaries and chapters as well. And I think for most of these, just comparing them to pure ChatGPT, it's really not even close.

So there was one here where it was, let's see, "Full stack Jamstack is the idea of having your back ends and your front ends be highly decoupled." So that's correct. "With JAM, what we have is a universal front end."

[00:23:32] "And then what we follow with that is services." Not so good. So I think for all these services, I'm just going to use them for transcripts and then continue prompting with ChatGPT. But the transcripts themselves are pretty good.

So this is the other one. This is from Deepgram and then Speechmatics. Let me give this some line breaks real quick. But I feel like what's really great about these services is that their APIs are pretty easy to work with. So I'm going to show that in a second.

Let me jump to this real quick. I want to show some of the code. So with AssemblyAI, you declare a client with an API key, you give it the URL to the thing you want to transcribe, and then if you want to get individual speakers, you turn on speaker labels.

[00:24:49] And then you just have this function that runs a transcribe function and you get the transcript back. So this is going to be pretty similar I think across all of these.

So if we look at the Deepgram one, we declare a client and you have an API key, you have a URL, and then you have a transcribe URL function. And then you can pass it some different things. So for this, I also want it to give me a summary, give me topics, and then you also can tell it which model.

So for some of these it'll be kind of like how you have ChatGPT 3.5 and 4.0, with 4.0 being better than 3.5. With Nova, that's Deepgram's transcription model. So it used to be Nova One, now it's Nova Two. So these things are kind of always growing. And they're always creating new models and things like that.

And then with Speechmatics, a similar thing, you have an API key.

[00:25:56] You have either a path to a file or a URL, and then you have a transcribe function. And this one you are setting the language and the format.

So what I really thought was pretty cool is that all of these had very simple APIs in terms of how you can plug this into your code. And that's what's nice for me because the Whisper step in particular was really challenging for sharing with other people, which is the thing that you and I were saying, that just having a C++ library kind of embedded in your thing just doesn't make any sense. And it's gonna be extremely hard for it to be cross-platform and things like that.

I had originally gone that way because for myself, I wanted a way to do this that was free and that would allow you to not need to rely on a service. But this is going to make a lot more sense to embed these kind of APIs in there, and especially because I do want to eventually turn this into something that can be a paid product that I could sell to people.

[00:27:05] So this, I think, is nice to have these options, because I can expose these different options to my user base and say, "Hey, here's some different transcription services you can use with different trade-offs in terms of speed and accuracy and cost." And then I can provide higher level things on top of that.

I think some of these things, like the chapters they're creating, I already can create better versions of this than what they're giving. And I can see that directly by looking at the output. So yeah, it's exciting stuff. I went really deep into this over the weekend. I was telling Monarch, I was like, I don't want to do much coding today because my brain is total mush right now.

00:27:47 - Monarch Wadia

I love the energy. You're into it.

00:27:50 - Anthony Campolo

I am. Yeah, I really am. And it's really cool because this is something that I struggled with a lot with FSJam in terms of having to decide, "I need to just not do transcripts because we didn't have the money and I didn't have the time."

So now I've kind of found ways to do it that are cost effective and good enough and fast enough. And now it's like, all right, cool, how do I expand upon that to make it even better, and something that is really adding a lot of value to people who will want to pay for something like this? So I've never built a product before, so it's going to be way outside my comfort zone. So it's good that it's something I'm actually passionate about.

00:28:32 - Monarch Wadia

Dude, that's insane. That's amazing. I'm super happy for you, that you have this project and it might turn into a product. That's fucking awesome, man. I think a lot of people would benefit from it. I've struggled with the transcripts thing before. I've wished that I could actually get transcripts.

This is the kind of shit that you could actually plug into even your own personal notes. People like taking voice notes and anything that you could just plug into your voice notes too.

00:29:05 - Anthony Campolo

Yeah, it doesn't even have to be video or audio at all, because a lot of the workflow involves just having good prompting and outputs and things like that. So you're right, you can just skip a lot of the first couple steps and just say, "I have this huge chunk of text. How do I leverage it?"

I've been telling my partner, I really want to... She has years and years and years of journaling and writing, probably multiple books worth at this point. And I was like, you could really get really interesting stuff if you put all this in a vector database or something and said, "Write a two page summary of the last ten years," and I'd be so curious to see what it would output.

00:29:42 - Monarch Wadia

Hey, that's another product right there. Boom. Just scan your notes. It's crazy what you can do these days.

00:29:49 - Anthony Campolo

And I know you're focusing on making Ragged work for local, which would be really important for that because people are going to be very wary of handing over their entire life diary to a service, obviously. And they should be.

00:30:01 - Monarch Wadia

I know I would be. So Ragged is a universal connector for large language models. So yes, local is a focus. It's something that I'm talking to people in the community about. "Hey, we should support WebLLM."

There was a really amazing demo that came out over the weekend where somebody used Mistral on WebLLM and ran a Mistral chatbot. Let me look it up.

00:30:27 - Anthony Campolo

Can you share it too?

00:30:29 - Monarch Wadia

Yeah. Well, actually, the first article that I accidentally dropped, that was me playing with WebLLM before it actually supported the large language models. It's like a Hugging Face. It's like Ollama, but inside JavaScript.

So what Ollama lets you do is run local large language models, download them, load them up, run them, and you can use free open source ones like Llama 2 and 3, Mistral, etc. And what WebLLM is, is it lets you package that inside your package.json and you ship it, and it lets you notify the user that, "Hey, I'm downloading a big large language model. It's going to be like 500MB. Are you sure you want to do that? Yes. Okay, good. Download it." Show progress. And then once it's downloaded, now you can chat with it.

And it's the coolest thing. And if you have a powerful enough machine, it's a game changer, because now you don't have to give up your privacy at all.

[00:31:31] And when I saw it last year, it was really doing a lot of good work. And just two days ago, on the front page of Hacker News, there was a Show HN post. Let me pull it up. It was just two days ago. I hope I can find that. Stuff on Hacker News moves so quickly sometimes. So, "I built a free in-browser Llama 3 chatbot." Here.

00:32:11 - Anthony Campolo

I'll just... Yeah. So it seems like this is... Well, okay, here's the JavaScript one. Yeah. So there's an npm package. Let's see.

00:32:22 - Anthony Campolo

Model URL. So this is using Llama 2. And then you can also run Mistral. Interesting. What's MLC?

00:32:38 - Monarch Wadia

Machine Learning Compilation. So that's how they compile the language models. That's the name of the group that runs this WebLLM, if I remember correctly.

00:32:51 - Anthony Campolo

So I was thinking of something else. I'm not sure. I've never seen this before. There's some other LLM that you can run on your own. It's just like a Mac program that you run yourself. It has a very similar name, but I've actually never seen this before.

00:33:12 - Monarch Wadia

LM Studio.

00:33:13 - Anthony Campolo

Yes, LM Studio, I think, is exactly what I was thinking of. Yeah. Okay, so this is a Mac app that you can download and use locally. So that's different from WebLLM. Interesting.

00:33:31 - Monarch Wadia

Yeah.

00:33:33 - Anthony Campolo

Okay. Yeah, I've never heard of this. So I don't know anything about this.

00:33:35 - Anthony Campolo

I'm now realizing...

00:33:37 - Monarch Wadia

It just went viral on HN. It has 138 upvotes, which is a lot for Hacker News. I just dropped a link to it in private chat so you could take a look at that. Yeah, there, that one. So if you click on the link you'll go to the demo. Oh, I think there's secretllama.com. Is that the one? Yeah.

00:34:04 - Anthony Campolo

No, this is cool. I want to see the repo. Oh wow. Yeah. This is what I want. Llama 3 and some way to run this. This is great.

00:34:15 - Monarch Wadia

I'm sort of in a dash to integrate this into Ragged. And then hopefully, if everything goes well, I'm hoping to make front page on HN by integrating this into Ragged and then just saying, "Hey, you saw Secret Llama, now you can build your own."

00:34:38 - Anthony Campolo

Let's try this. One of the things I like to do to test out models is ask it about myself and see what it says. I'm working on... I have a testimonials page now on my website that basically has some nice things people have said about me, and I want to have a bottom section right below where it's like nice things LLMs have said about me, because they say some very nice things. So this is just gonna take a while.

00:35:05 - Monarch Wadia

It'll take a little bit. I hope you have a good GPU.

00:35:09 - Anthony Campolo

So this is running on my own machine?

00:35:12 - Monarch Wadia

Yeah. Inside your browser.

00:35:16 - Anthony Campolo

Wow. Okay, let me actually use Tiny Llama.

00:35:23 - Monarch Wadia

Tiny Llama might not know Anthony Campolo. It should know who Anthony Campolo is.

00:35:28 - Anthony Campolo

Well, the way you get it to know is because I have my own specific namespace that no one else uses. I feed it that. Because there's Tony Campolo, who is an extremely famous pastor. If you Google Anthony Campolo, he's what's going to come up.

So in general, you'd be surprised how well these models can know who you are, especially if they can reach out to the internet. Oh yeah, actually, I don't really know what Tiny Llama is. Is that something that the company created, or is that just another model that they're pulling in?

00:36:01 - Monarch Wadia

Tiny Llama, I think what they're doing is they're compiling the model. So it's not their model, but what they've done is they've compiled it so that this library can use it.

00:36:14 - Anthony Campolo

Gotcha. That's cool.

00:36:18 - Monarch Wadia

At least that's how it worked a little while ago. Maybe they don't need to do that anymore. I don't know.

00:36:27 - Anthony Campolo

So how did we first get on this topic? WebLLM.

00:36:32 - Monarch Wadia

Ragged? So you said you're focusing on local LLMs. Oh, there you go. Wow, that was fast. Whoa.

00:36:38 - Anthony Campolo

That's all incorrect, though.

00:36:41 - Monarch Wadia

Hey, you know what? It's in the ballpark. And look at the tokens per second, man. That thing's blazing fast. Do you have a really powerful...

00:36:54 - Anthony Campolo

This is totally confused. I'm on a fairly new Mac. Yeah.

00:36:59 - Monarch Wadia

Do you have the M3 chip?

00:37:02 - Anthony Campolo

Yes.

00:37:03 - Monarch Wadia

That explains it. Oh, I envy you.

00:37:08 - Anthony Campolo

Nice.

00:37:11 - Monarch Wadia

Man, you can get like 22 tokens a second. It's fast. What's interesting about the tokens per second is that now you can actually put it into a recursive loop or turn it into a program because it's that fast. You're not stuck with the slow speeds that ChatGPT gives us and trains us on. This goes beyond ChatGPT.

00:37:34 - Anthony Campolo

Yeah, I should also give it a while. So let's switch back to you sharing your screen and we'll let this run and maybe check it out later.

00:37:42 - Monarch Wadia

Sounds good.

00:37:48 - Anthony Campolo

Grab all those links and throw them in the show notes for people.

00:37:51 - Monarch Wadia

Cool. Okay. Everything is slowed down. Present your screen share. Cool.

00:38:15 - Monarch Wadia

What were we doing? Oh yeah. Okay, so close.

00:38:22 - Monarch Wadia

[unclear]

00:38:23 - Monarch Wadia

So I have this little...

00:38:25 - Anthony Campolo

Way bigger.

00:38:27 - Monarch Wadia

Okay. So I'm just creating a concept app. I'm not going to go into the concept, but I'm creating a concept app, and Ragged is what...

00:38:37 - Anthony Campolo

Sorry, what's a concept app? What do you mean by that?

00:38:40 - Monarch Wadia

It's a toy app. It's a proof of concept.

00:38:43 - Anthony Campolo

Yeah.

00:38:44 - Monarch Wadia

A demo. Yeah, a demo concept app. Fair enough. So I'm building it using Ragged and it's for a friend of mine, and we're hoping to maybe build something together. This is just the first time that we're working together. He asked me, "Hey, can you build something small and let's sort of riff off of that so that we can learn how we work with each other." So that's what I'm working on.

This functionality of streaming responses, chat history, all of that is powered by Ragged. I'm just visualizing what Ragged is doing under the hood. And I'm also doing tool use over here. So generate an image of a dog. It's going to start generating the image and it should try and show the image on the left. I promise you it's trying something. It's just going to fail. Like, this is tool use. Tool use is happening.

[00:39:50] You can see that. So what I'm trying to do is figure out why the hell this thing just doesn't want to display the image. So that's what I'm working on right now. And I'm working with this really cool API called fal.ai. fal.ai is a generative AI platform for developers. Absolutely great. A generative AI media platform for developers.

00:40:17 - Anthony Campolo

And so when they say media, is that just images or is that also things like audio and video?

00:40:24 - Monarch Wadia

Good question. So let's take a look. Where is the model gallery? Well here's some. So there's image, text to image, text to image, image to video. It can do image to image. So mostly it's image to image. But there's also... Oh come on. Oh fine, I'll open it up.

00:40:48 - Anthony Campolo

Yep.

00:40:50 - Monarch Wadia

Yep, yep.

00:40:51 - Anthony Campolo

Fuzzy Bear is asking for a link to Ragged. I will drop it for him. Thank you.

00:40:59 - Monarch Wadia

...

00:41:00 - Monarch Wadia

Fuzzy Bear, if you want the... you know what? After this call ends, I'll push the tool use for Ragged so that you can actually try out the tool use. I've put a bit of effort into it, and I'm excited that other people are excited too. Yay! Super early phase though. So if you try it out, we'd love to hear your experiences.

Coming back to the fal.ai model gallery, it has image to image, text to image, vision, image to video, text to video. So it has video generation. Oh, it has text to speech.

00:41:41 - Anthony Campolo

Does it have a render ability? That's what Fuzzy is asking.

00:41:46 - Monarch Wadia

A render ability?

00:41:49 - Anthony Campolo

I think he's talking about rendering the photo itself. Maybe. I'm not entirely sure what you're talking about, Fuzzy Bear.

00:41:55 - Monarch Wadia

Okay. It's a low level library. It's not intending to be like a framework. It's a connector library.

00:42:04 - Anthony Campolo

Rendering UI components.

00:42:07 - Monarch Wadia

No, you'd have to use React or Vue or Svelte or what have you. So what it is, is like how an ORM lets you connect to different databases. I just personally, my preference has always been keep it low level and composable and scalable and testable. Good old fashioned SOLID principles. And stuff like LangChain just makes testing really hard to do. It manages its own state. It's really difficult to really look inside.

So what I always do when I build a generative AI app is I just build from scratch. And I've implemented streaming APIs on top of OpenAI, like connecting it into a custom stream and then outputting that into the DOM as the streaming input comes in. I've implemented it like ten times, and I got so tired of just implementing the same damn algorithm ten times. And OpenAI is hell to work with.

[00:43:08] Let me tell you, they have amazing tech, but their API leaves a lot to be desired.

00:43:17 - Anthony Campolo

What's your issue with their API?

00:43:20 - Monarch Wadia

Did you know that OpenAI's downstream data transfer objects are different from their upstream data transfer objects? So their request...

00:43:28 - Anthony Campolo

What do you mean by that?

00:43:30 - Monarch Wadia

So you know how you have to manage history in all of these things, like chat history? You have to manage the conversation.

00:43:37 - Anthony Campolo

Yeah, yeah.

00:43:38 - Monarch Wadia

Like an array of messages. You have to manage it yourself. So I found out early on that the response that OpenAI sends you, you shove it inside your array and now you have an array of OpenAI response objects. Like, message one: "Tell me about birds." Message two: "Birds are animals that can fly." Right? So you have an array with two objects. One is a human question. One is a machine response.

And what really bugs me is that I can't actually send the same array back up. I have to transform...

00:44:14 - Anthony Campolo

It.

00:44:15 - Monarch Wadia

Before I send it up.

00:44:16 - Anthony Campolo

That makes no sense. Yeah, it makes no sense how that could happen. Makes no sense.

00:44:21 - Monarch Wadia

Makes no sense. And if I want to store it, I don't want to store it as per OpenAI spec. So storage is a third implicit data shape that I have to make. It's like a different type that I have to make if I want to store it in my own database. So that was one massive issue that I had with OpenAI's API.

So what I did was, what Ragged has is one data spec for requests, responses, and storage. That's it. So you can just store it as is in your database. You resurrect it and it's right there again. You can even change the LLM on it so you can make requests to different LLMs in the same conversation flow if you want. And that's...

00:45:04 - Anthony Campolo

Crazy. Yeah, that's really, really interesting what you just said.

00:45:09 - Monarch Wadia

Really? You think so?

00:45:10 - Anthony Campolo

Yeah. No, it's really the fact that you have that ability and that I haven't heard anyone else talk about having a single conversation where within that conversation, you could talk to different LLMs and chatbots. To me, that seems like a really big deal.

00:45:22 - Monarch Wadia

Really? Okay. Yeah.

00:45:24 - Anthony Campolo

Because we've seen these things where you can compare different models. Like Swix has this God mode where you talk to an LLM and you get different responses. And I do this myself. I will sometimes ask ChatGPT and Claude for a response, and then I'll have them read each other's response and then kind of incorporate pieces from either. I think this whole multi-model thing and having different models working with each other and interacting, I think that's a huge, untouched space right now.

00:45:53 - Monarch Wadia

Oh that's interesting. Okay. That's really useful. Thank you for that. Because if that's interesting to you then that might be interesting to other people. You just gave me a clue. Yeah, because I've been trying to Sherlock my way into popularity. Like, what do people want? What are people looking for? What would wow people? So that's interesting.

The other thing that this thing has is tool use. Tool use is another thing that's hard to do. So with OpenAI's API, if I wanted to do tool use, I have to do a lot of different things. I first have to understand what JSON schema is. Let's say I understand what JSON schema is, which I did. I was lucky or experienced. Then I have to understand that I have to give my interface for my function, for the tool that I'm providing to the AI. So the AI can call a tool like a generate image tool on my end, or it can call a save to database tool on my end.

[00:46:49] So whatever it's sending me, I save it to database with the save to database tool. That's something that I have to define and then provide to the AI. And then the AI gives me the function call. But then I have to manually call that function. So it's just going to give me a JSON blob of all the things that it wants to put into this tool, like the function parameters. It just gives me the function parameters. And I have to actually evaluate those function parameters myself. And there's security risks around that. There's issues with data validation.

So all of that is being handled. Data validation isn't being handled because that has to be handled... like I have to build the data validation into it. Did the AI hallucinate the function parameters? I have to build the data validation for hallucinations, but that's a small task. It's that easy.

What's more difficult is, well, how do you make this...

[00:47:45] Then call the thing, call your tool, and then take the response from your database, that okay or error, and then you have to actually pass that back to the AI. So the AI gets feedback and knows what happened. You don't want the AI to just send requests off into the void and never hear back. You want to give useful feedback back to the AI, which is the foundation of agent building. You build agents by feedback loops.

00:48:13 - Anthony Campolo

So you are interested in doing agent stuff with Ragged.

00:48:16 - Monarch Wadia

I don't want to because in my opinion, agents are a simple problem. The AI that's...

00:48:23 - Anthony Campolo

Bold. That's a bold statement. Agents are a simple problem.

00:48:26 - Monarch Wadia

It's a hypothesis. The hypothesis is that agents are nothing special. They are just a feedback loop. We as software developers do feedback loops all the time. It's called recursion. We also have nightly batch jobs that repeatedly work on the same data over and over again. Or hourly jobs or jobs that run every minute or every second on data. So we already...

00:48:53 - Anthony Campolo

It's not deterministic though, because of the types of tasks you're giving it. So it's like conceptually, sure. But in practice, not really.

00:49:03 - Monarch Wadia

It depends on how you see the prompt. If you see the prompt as instruction, then you get into the mindset of this is metaprogramming. But if you see the prompt as data, then it becomes a lot simpler. If you see the prompt as just a piece of data that you're passing into the AI, and what is passing out is also a piece of data, then it turns into a string in, string out interface.

Which, by the way, is the same thing as the Linux Unix tools philosophy. The Unix tools philosophy is keep it simple, have lots of different tools and interfaces. String in, string out. This is the world of sed, awk, grep, stuff that I never used, but I know about because I studied it. So it's a string in, string out interface, and that's the exact same interface that we've been using as software developers for 50 years. So if you think about the problem...

00:49:54 - Anthony Campolo

He's a big fan. He says, "I'm loving this guy."

00:49:58 - Monarch Wadia

So if you have string in and string out and that's all that this stuff is, and you look at the prompts and the conversations as just data, then what you realize is that, oh shit, I can actually do SOLID on top of AI, and I can build agents using SOLID instead of frameworks. I shouldn't be cursing, should I?

00:50:20 - Anthony Campolo

Fuzzy's already been cursing a bunch of times. Yeah, I mean, I guess so. So everything you're saying makes sense, but with agents, it receives those prompts, and then it has to do something and it has to output it, and then it has to be able to chain those together in a way where it actually ends up achieving the thing it wants to achieve. So I just feel like you're talking about the interface to the agent, but the functionality of the agent itself is like a whole different thing. So I guess that's not really what you're talking about.

00:50:50 - Monarch Wadia

The functionality of the agent is just it prompting itself. If you look at how the agents work, it's the same conversation array that we were talking about, except the agent is talking to itself over and over again. So all it's doing is pushing new messages onto the stack, evaluating it, and then pushing the response into the stack, evaluating the new thread, pushing the response onto the stack, evaluating the thread again.

So all it's doing is recursing. It's the snake eating its own tail, the ouroboros, the phoenix that burns itself. Whatever humanities metaphor you want to use, it's just recursion or iteration. The reason it's a hypothesis is that I haven't proven it out myself, so I'm building up to it. But I have a really...

00:51:45 - Monarch Wadia

Really.

00:51:46 - Monarch Wadia

Really strong hunch that this is going to go exactly how I plan it.

00:51:51 - Anthony Campolo

And because Fuzzy said earlier, he was saying you throw in agents and workers and it's kind of like Devin, that tool that is like a programming LLM agent.

00:52:03 - Monarch Wadia

Yeah. What about it? Sorry.

00:52:05 - Anthony Campolo

Have you heard of Devin?

00:52:07 - Monarch Wadia

I have.

00:52:08 - Anthony Campolo

Yeah. So what Fuzzy is saying is that with Ragged, if you built in agents and he said workers, I'm not sure what he means by workers, that you would have your own Devin. And then he's also saying here that he's thinking that a growing chain of strings isn't the most efficient way for models to operate. That's exactly what we're talking about right now.

00:52:32 - Monarch Wadia

Correct. So what I want in the next six months is to build utilities that will do things. Standalone function utilities where you pass in your standardized history object, which is the core of Ragged. You take your standardized history object, you shove it into a summarize function, and the summarize function will just give you one history object instead of like 20. It'll give you the summarized object.

How that summarized thing is going to work is it's just going to be a prompt. And I would encourage the developer to actually write the prompt themselves instead of relying on some external library's prompt. Because if you use somebody else's prompt, you don't understand it. It's hard to change. So just write your own prompt and use Ragged to summarize stuff inside Ragged.

And that way, because the API is that simple, you move away from this agent framework where I feel like we're just doing software engineering, like we're rebuilding software engineering from scratch again. And I just want to short circuit the loop.

[00:53:36] This happened in JavaScript. Java had all these really cool things. I know Java, but Java had all these really cool things like static typing and generics and enums. It had all these really cool, useful things that could let you build scalable software. And it took us as JavaScript developers, I think, 20 years to rebuild what Java already had.

So I just want to say, hey guys, we're building this AI thing. The agents are cool, but agents really remind me of what came before, object oriented programming. And what came before object oriented programming was this weird way of thinking. I feel like we're in the middle of functional programming and object oriented where people were experimenting with encapsulation and then finally object oriented programming said, oh yeah, let's just put the code into organisms like cells, like human cells, like living cells. And each cell has an interface, and the interface does its own thing, and the cells talk to each other through a message bus.

[00:54:41] You can look this up on the history of object oriented programming and what OOP was supposed to be. It was supposed to be like different little biological cells talking to each other over a message bus, which is what a fucking agent is. So if you just fucking move past that, we move past that mindset of agents and we get into OOP land again. I think everybody will be a lot happier and a lot more efficient. So that's what I'm trying to do with Ragged, okay.

00:55:08 - Anthony Campolo

That's super interesting. Yeah. I would need to kind of see what you end up with, because I obviously haven't used agents myself. It's kind of just something I've explored. But I want to get into your hook stuff. Do you want to talk about that?

00:55:25 - Monarch Wadia

Yeah, let me do that. More fun stuff.

00:55:27 - Anthony Campolo

Thanks for the comments. Yeah, thanks for the comments, Fuzzy. Super great having you in the chat. Really great input from you. So appreciate having you here and engaging.

00:55:38 - Monarch Wadia

Yeah, 100%, man. Those are really good comments. And thank you for the vote of confidence, I appreciate it. I'm in that phase where people don't believe in me because they don't understand me.

00:55:49 - Anthony Campolo

Yeah. And Fuzzy, if you have use cases or you're trying to do some AI stuff yourself or you want to come on the stream, we would be happy to have you here with Monarch and maybe show you what you could do with Ragged to help you out with some of your stuff.

00:56:03 - Monarch Wadia

Oh, 100%, whenever. Let me know. Here's Ragged and I should just show the font. Oh, thanks.

00:56:13 - Anthony Campolo

He said, hell yeah, he's free. Hit me up. Cool. I'll see if I'll do it for just same time next Tuesday.

00:56:19 - Monarch Wadia

That would be amazing.

00:56:21 - Monarch Wadia

Okay, here's how useRagged works. I'll just go into the hook. Fuzzy, are you good with React? Or I can just forget the React stuff, and I can just show you Ragged itself.

00:56:35 - Anthony Campolo

You should just do Ragged itself. Fuzzy's into Astro, so cool. He can do multi-framework, but I know he's a web standards kind of guy, if I had to guess.

00:56:46 - Monarch Wadia

A web standards guy.

00:56:47 - Monarch Wadia

So I should probably do Ragged instead of useRagged.

00:56:52 - Anthony Campolo

Well, I mean, I want us to use useRagged just because that's kind of new. Let's start with useRagged. And then you can kind of explain how that relates to Ragged itself.

00:57:01 - Monarch Wadia

It's just building on top of each other. So useRagged uses Ragged under the hood. So Ragged is this guy here. What it does is it sets up an object, it sets up a hook in React. So this is the same as useState. It uses useState under the hood.

And you get three functions right now that I'm working on expanding. So you have chat and that's a verb. So chat is "here, I'm the user, I'm going to say this." And chat is a function that takes either a string or a history or history array. And then you have getChatHistory and getLiveResponse.

getChatHistory is the array so far and getLiveResponse is when you chat, you want a nice easy stream to come in so your user is not waiting a minute for the LLM to finish talking. So you just want to stream, right? So getLiveResponse gives you the stream. And here's just some additional setup stuff. This dangerouslyAllowBrowser.

[00:58:03] That's because that's an OpenAI thing. I decided to keep it there for transparency and I'm considering just getting rid of it. But this is an OpenAI config object. So you just drop in, like, it's typed. It's typed so you can see all of this stuff coming in from OpenAI. You can even change up the implementation of fetch you're using. So you can give it its own different version of fetch that you built yourself if you really want it for logging, etc.

00:58:34 - Monarch Wadia

And what this does is chat. I just take the user input and then I take the tools that I'm using. I am using GPT-4 for this guy. So instead of GPT-3.5, which is default, I just use GPT-4. And that's it. So the handleChat function calls chat. So chat is inside handleChat. And handleChat is called by the form submission. So you go down to the form. Maybe I should have started with the form. My bad.

00:59:06 - Anthony Campolo

You're fine. Yeah.

00:59:09 - Anthony Campolo

So what I'm thinking right now: you have this whole thing going on, which is kind of managing the state, and right now the state is not being persisted. Is that correct? It's just kind of chilling in your browser. And then if you refresh, you lose it right now.

00:59:22 - Monarch Wadia

Yes.

00:59:23 - Anthony Campolo

But eventually you can have all this be dumped in a database and then you'd have a chat history, like how OpenAI keeps a running history of all your chats.

00:59:30 - Monarch Wadia

Oh, absolutely.

00:59:31 - Anthony Campolo

And then really quick, sorry to interrupt. The real interesting thing is now ChatGPT, just like a week or two ago, at least I got access to, I'm not sure if other people have earlier, the ability for ChatGPT to keep a running memory of all of your chats. So you can turn on memory now, and it can basically, because this has been a huge issue in terms of what if I just want to talk to it for the next year and have it be able to recall things from ten conversations ago? Yes. Send it to IndexedDB. Yep.

01:00:01 - Monarch Wadia

So there's RxDB, which I'm looking at with a lot of interest. And what RxDB is, is it's a reactive database. I'm trying to open up a new tab. So RxDB is a fast NoSQL database. It's basically a replicable front-end database that runs on top of local storage. And it seems to be pretty good. It supports RxJS and I'm hoping that works up front.

01:00:37 - Anthony Campolo

And then real quick, you're saying you're going to remove RxJS though. So were you just about to say that you want it? Will this work without RxJS?

01:00:45 - Monarch Wadia

I need something to do message passing. And I'm not a super pro at message passing. So RxJS is solving it for me.

It looks like Fuzzy knows about RocksDB. So RocksDB is like, I'm just hoping that it plays well with RxJS. I'm looking at this. There was an article that I read a while ago that said that you could use vector nearest neighbor search inside the front end because it's really cheap.

So what you can do is you can have a RAG pipeline that runs entirely in the front end, and that saves you a lot of effort, because now you can save your context window, you can save money, you can save time. You can have a more focused query with every chat. So you can do RAG in the front end by just storing a vector database in the front end and then basically using IndexedDB as a vector storage.

01:01:44 - Anthony Campolo

So interesting.

01:01:46 - Monarch Wadia

That's sort of where I'm going with Ragged. Ragged has you covered on the front end too, because one of the things that I have on my roadmap is I'm going to be doing embedding generation in Ragged as well, because Ragged is full stack. You can use it in the front end. You can use it on the back end.

01:02:05 - Anthony Campolo

Some of that I would really be interested in, because that's something that I have wanted to do, but don't have a ton of experience with the embeddings part itself.

01:02:12 - Monarch Wadia

You send text up and it sends you an array of floats. You don't touch the array of floats, you just treat it like a black box.

01:02:21 - Anthony Campolo

And how are those generated?

01:02:24 - Monarch Wadia

There's text-embedding-ada-002, which is the model.

01:02:27 - Anthony Campolo

So you use OpenAI's embedding endpoint basically.

01:02:30 - Monarch Wadia

Yeah. For me, yeah.

01:02:33 - Anthony Campolo

So yeah, that makes sense. This is the point where I always end up and I'm like, how do you get your embeddings? And then they'll explain stuff like, okay so you're using OpenAI's embeddings. And you're like, yeah.

01:02:42 - Monarch Wadia

Yeah. And you can use other stuff too. But OpenAI is OpenAI. And then you can just save that inside the front end. And then you can do RAG in the front end, or you could do a mix of RAG on the front end and RAG on the back end.

That's why I think that right now a lot of people are doing Python-based LLM work, which is awesome, but TypeScript-based LLM work, what it can let you do is have a really full stack experience with your RAG application and give you a lot of superpowers so you can have architectures like what I just said.

They're not relevant this year because nobody needs it. But in the next five years, as we become more and more complex and complicated as developers tend to do with their code, you might have gigabytes being stored in local storage in the front end or IndexedDB in the front end, and then those gigabytes of data, you're going to want to go in and query those gigabytes of data on the user's device itself.

[01:03:42] You might not even want to store it locally on your server for privacy concerns or liability concerns. I mean, damn, these people are sending you their life histories. It's tempting to want to store all of that as a big evil corporation, but there's talks about can your AI be subpoenaed? Sam Altman just brought that up. Yeah. So can your chat AI, can your ChatGPT be subpoenaed and testify against you in court? So that's a question.

01:04:13 - Anthony Campolo

Absolutely terrifying.

01:04:14 - Monarch Wadia

Right? And also, maybe the first foothold for, I don't know, AI personhood. You already have corporate personhood. Corporations are people.

01:04:24 - Anthony Campolo

So yeah, I know how I feel about all that.

01:04:28 - Monarch Wadia

Hey, if you already have non-human persons, you already have non-human persons. Don't forget. Anyway, legal stuff aside. Where am I going with this? It's a hook.

01:04:43 - Anthony Campolo

Could you show us an example of if you were consuming this, how you would write the hook?

01:04:47 - Monarch Wadia

That's a good question.

01:04:48 - Anthony Campolo

Or do you have a Hello World example?

01:04:51 - Monarch Wadia

I probably do. So thank you for guiding my hand. Let me see. Oh yes, I do. I have a very simple one for situations like this actually.

So if you go into the GitHub of Ragged, you'll find this in the examples. You go to examples, you go to useRagged. And there's a very simple example there. You can even run it. It shows you how you just have to put in your credentials if you want to run it locally.

And this is Ragged. Really simple. Here's the hook. Instantiating the hook. Here's the form handler. A lot of DOM. Here's the form with the input here. Put in a prompt. Here's the input. Put the input here. Handle submit. That's it. That's a form. That's a form that gets hooked up into chat.

01:05:49 - Anthony Campolo

You need to bump up your font.

01:05:52 - Monarch Wadia

Ah. Sorry.

01:05:53 - Anthony Campolo

And then close your side panel and then bump up a few more times.

01:05:59 - Anthony Campolo

There we go. That's good. Yeah.

01:06:01 - Monarch Wadia

This is all good.

01:06:02 - Anthony Campolo

Yeah. Okay, so this is textbook React. Just gotta handle submit. That's managing your event. And then all the stuff you're kind of showing before makes a lot of sense. Yeah.

01:06:17 - Anthony Campolo

So yeah, the getChatHistory part where you're filtering. That's probably the most important thing to explain.

01:06:22 - Monarch Wadia

Sure.

01:06:23 - Monarch Wadia

Yeah. So over here, this is where we start working with the Ragged history item. And the Ragged history item is the thing that I was talking about. This is the core. This is the spine of Ragged.

01:06:34 - Anthony Campolo

Yeah. This is really interesting to me as someone who has kind of built out a couple very simple chat examples. Usually what I've been doing, I have not even tried to manage history in any of the examples I've done, because it's a higher level thing.

I'd be curious, you may or may not know this, how other kind of higher level libraries are managing this, or if they're not managing it at all?

01:06:57 - Monarch Wadia

Honestly, I don't know because all of the higher level libraries, they're just doing agent frameworks and they're not really scalable. They might say they're scalable. And yes, they have production success, but I find them not conducive to SOLID principles. And my way of developing software, which I was trained in by people who had been doing it for decades, doesn't fit well with my way of doing things.

01:07:23 - Anthony Campolo

And this is, yeah, I'm looking at LangChain right now. I'll drop this link in the chat. They have a section on Chat History that uses basically a Chroma vector database and OpenAI's embeddings.

01:07:39 - Monarch Wadia

Yeah, no, that's too complicated because 90% of the use cases are going to be the simple use case of I want a chatbot and I want to do some function calling. So the type for Ragged history item is very simple. If you want to do streams and you want to listen to streams, that's more complicated.

01:08:00 - Anthony Campolo

Should be named event.

01:08:01 - Monarch Wadia

What, the type should be named event? I see, no. Oh, okay. So the reason I didn't name it event is because the event type also has chunks. So it has individual characters coming in or tokens coming in from the LLM. So the Ragged history item is a subset of the event. So I have an event. It's called Ragged Stream Event. Does that make you happy? I hope it does.

01:08:28 - Anthony Campolo

And also real quick on LangChain, there's another page called Add Message History which has something called Runnable With Message History which lets you add memory history to certain types of chains. It wraps another runnable and manages the chat history for you. So this seems like this is more similar to what you're doing, but it has this whole runnable thing, which is again, there's a lot of baggage with LangChain. They have all these higher level APIs that you have to work with.

01:08:53 - Monarch Wadia

They cornered the market. They did the right thing from a business point of view. They raised a bunch of money, hired a lot of marketing people, and they cornered the market for LLM frameworks. But if you go to Reddit, there's a lot of people who hate it. They all use it because they're starved for choice, but they hate it.

01:09:12 - Anthony Campolo

So I think it really shows that there's a demand and market for something like Ragged.

01:09:21 - Monarch Wadia

Yes.

01:09:21 - Monarch Wadia

Yes, I hope so.

01:09:24 - Monarch Wadia

So Ragged history item, that's the stuff that's persisted. That's the stuff that you can put into your database. And there's only three types.

There's the text history item. That's your AI, human, and system prompts. And all it has is text. This is the vast majority of your history.

And then the other thing that you have is tool request and tool response. Tool request is also very simple. It's the request ID, the name of the tool. It's not three strings, sorry. It's two strings and an object, and inputs is whatever you've told the AI to respond in. And tool result is the result. So there's the inputs that you sent in, and then the results are coming out. And that's the definition that you've given the tool.

So that's it. That's all it is. This is the part if you didn't want to do streaming and you were doing it in the back end and you didn't care about streaming, you were just doing this on the back end.

[01:10:27] You don't really have a use case for streaming. You only have to care about Ragged history item. And I just explained it in a minute and it's dead simple.

Inputs is in any because inputs is user defined, and results is in any because result is also user defined. And I have to do the TypeScript stuff still for this, so forgive me for using any, but that's it. That's all that Ragged really needs to care about.

And there's going to be more. As we add images, as we add embeddings, as we add video, all of this is going to get richer and richer. But as it stands right now, because everybody is using chatbots and all of the images can be done out of band, this is all we really need. And this is what everybody really is starved for. Just simplicity.

So that's what I'm building. It's taken me, I think I've put in maybe 200 hours already in this.

[01:11:30] Maybe 300.

01:11:31 - Anthony Campolo

Wow.

01:11:31 - Monarch Wadia

Yeah. So it's a serious project.

01:11:34 - Anthony Campolo

Real quick, could you just Google "LlamaIndex.TS chat history" and then pull that up on your screen?

01:11:42 - Monarch Wadia

Yeah. Chat history. So this guy, click that.

01:11:50 - Anthony Campolo

Yeah. And then click the chat history link right there. Yeah. So this is interesting. This seems a little closer to what you're doing than what LangChain is doing. So I'll be curious, based on what you've built, how does this all look to you? Does this make sense?

01:12:05 - Monarch Wadia

Putting me on the spot. First thing I'm seeing over here is that this is...

01:12:11 - Anthony Campolo

Basically, they're defining classes for the chat history itself. And then they have something called a summary chat history. So I thought that was interesting because you mentioned having a summary.

01:12:21 - Monarch Wadia

Yeah. I can't remember the last time that I managed data as a class in JavaScript, right? Because this is great if you're...

01:12:31 - Anthony Campolo

You're doing a type, not a class.

01:12:34 - Monarch Wadia

Yeah. So there's a divide between say Java and JavaScript. In Java, you always want to have DTOs and classes and objects defined as classes. That's how Java works.

But when it comes to JavaScript, everything is a JSON object. If you have a large state, are you going to use classes for state? If you're in React, then React has very bad support for classes. When it comes to data, you would always have to translate it into a JSON object if you wanted to render it inside your React DOM.

So immediately my first concern with this is, well, how do I convert this into JSON so that I can actually render it inside my front end? That's my first concern. And that's a neutral concern. I'm really hoping that I can find something that I can take cues from, somebody who's done more work than I have.

01:13:35 - Anthony Campolo

That's why I'm bringing up things like this. I'm trying to figure out what these other libraries are doing and see if anyone's doing something similar to you, or how it kind of diverges.

01:13:42 - Monarch Wadia

Here's what I found. I found this one, and I'm following the dude on Twitter.

01:13:50 - Anthony Campolo

Yep.

01:13:51 - Monarch Wadia

There we go.

01:13:52 - Anthony Campolo

So object to JSON is what you said. Oh.

01:13:56 - Monarch Wadia

No. Here's LM Client. So, JavaScript TypeScript library based on a Stanford GSB paper. It's solving a slightly different problem. What this does is it auto-generates types for your prompts, which is cool. I haven't looked into it fully, but this sort of makes it slightly more clear.

What's a prompt signature? "Write a simple search query." That's a prompt task, and that's part of the signature.

Quick recap. A signature is made up of the name of your function, the parameters of your function, and the return type of your function, and maybe the errors. If you're in a better language than JavaScript, the errors that your function might throw, that's your signature. And the signature over here gets enhanced with the prompts, which is interesting. So a prompt signature is like a more type-safe way of doing prompting. And that's what LLM Client is trying to do. They also have multiple input and output fields: string, number, boolean, JSON.

[01:15:07] They have different LLMs that they're supporting. They're supporting a lot of LLMs, which is really nice.

So check this one out too if you're interested in the approach that Ragged is taking. Check out LM Client. That might scratch your itch too. I haven't tried it out yet. It's on my to-do list, but they have a very similar setup. AI using OpenAI is very similar to what Ragged is doing, and API key.

Okay, they're doing a bit more. They're doing chain of thought. So they're doing more than Ragged.

01:15:40 - Anthony Campolo

Chain of thought, really interesting. From the way I understand it, it's basically asking an LLM when you tell it to do something, you tell it to also write out the steps of what it would be required to do the thing you ask it, or you write out the steps to kind of give it the... How do you think of chain of thought?

01:16:00 - Monarch Wadia

I got this answer in an interview question, and I failed the interview because I didn't know the name of it.

01:16:05 - Anthony Campolo

Okay.

01:16:06 - Monarch Wadia

I've been doing it for two years, but I didn't know the name of it. So it's kind of like a sore spot, but I'll try.

01:16:15 - Anthony Campolo

Yeah, it's jargon for something that should be simpler.

01:16:21 - Monarch Wadia

You're working around the limitations of the LLM because the LLM wants to go off in a certain direction. And what you're really doing is you're telling it to go. I can use words like stochastic movement through latent space, and you're trying to set it on a vector in latent space that's more relevant to your task.

You can use engineering phrases and engineering words, but really what you're doing is you're telling a five-year-old to explain what they're doing so you can understand them, you can understand what they're doing better, and what's more important, they can understand what they're doing better.

So you're asking a five-year-old to do long-form division step by step and explain what they're doing every step of the way so that their understanding is sharpened. And that's what chain of thought is. That's the way that I've approached it, and this is my own approach.

[01:17:22] Different people do it differently. There's no right or wrong or better or worse. It's just my quirk. My quirk is I want to get to know the LLM and its personality and what it's good at, what it's bad at, like actually play with it. And once I know it, then I know how to prompt it because I guarantee it, chain of thought is very relevant this year. It won't be relevant in five years. It just won't be.

01:17:44 - Anthony Campolo

Because it will be so implicit and understood and kind of baked into everything. It will go away as a specific concept.

01:17:51 - Monarch Wadia

The LLMs are going to get bigger, they'll have more parameters, they'll be smarter, they'll be able to think further, and they won't need it anymore. And in fact, they might want to do it themselves automatically. They might be trained to do chain of thought.

01:18:03 - Anthony Campolo

Yeah, that's what I was thinking. It'll just be a thing that they'll know how to do, and that will be inside the foundation model.

01:18:10 - Monarch Wadia

Ah! Gotcha. Abhimanyu just said ELI5 is a chain of thought. Yeah, you can sort of put it like that. It's almost like ELI5 in bullet-point format. What your steps are going to be to write this essay. So it's more like what are your steps rather than ELI5.

But yeah, I think a lot of papers came out really quickly because a lot of researchers wanted to get their citations, and they started using words like chain of thought. And hey, it's useful. I mean, you're spreading knowledge.

01:18:52 - Anthony Campolo

You gotta call it something. That's the thing, you gotta come up with a name, I guess, or a way to define it for people. So if you can think of a better name.

01:18:59 - Monarch Wadia

Yeah, I'm an intuitive. I like understanding how things work. I'm the kind of guy who first time I'll have a new drink, like a whiskey, I'll always have it neat. I just want to know what I'm dealing with before I start mixing it in different kinds of liquids. I just want to know what the LLM is doing. That's me.

I'm an unpopular guy because I don't really think science is all that. Science is great. The scientific method is amazing. But science as a religion, science is not a religion. But people take it as a religion.

01:19:41 - Anthony Campolo

People take it on because the thing is that we got into this weird space where it was like, trust the science, where it was like scientists said blank. Like, well, they're scientists, so I believe them.

Instead of like, actually, no. When scientists say something, if they actually figure something out, then they'll be able to explain it to other people because they have to be able to explain it to each other. They are able to check each other's work. So it's like this complete inverse where it's like, no, they're a priesthood. When they say things are true, it just means it's true. And it's like, no, that's the opposite of what science is actually.

01:20:14 - Monarch Wadia

So the interesting correlation there with humanities is, you know, the god Mercury. Well, vaguely Hermes. Like everybody talks about Venus and Mars and Jupiter and Saturn.

01:20:30 - Anthony Campolo

Mercury is the god of financial gain, commerce, eloquence, messages, communication, including divination, travelers, boundaries, luck, trickery and thieves.

01:20:39 - Monarch Wadia

Yes. Now, the interesting thing over there is that you're mixing commerce, magic and thievery.

01:20:45 - Anthony Campolo

I know, right?

01:20:47 - Monarch Wadia

Did you know that the caduceus, there's this whole thing about how in the medical field, you have these two snakes on a stick? I'll just Google it. Risky click. This thing is supposed to be something entirely different, but it ends up being the symbol of Mercury. This is actually a symbol of Mercury.

01:21:16 - Anthony Campolo

So it was a staff carried by Hermes? Yes. And this is the whole thing with Hermes Trismegistus, which is like this secret society, ancient wisdom or hidden wisdom kind of thing. Hermeticism is based on this. That's where the term Hermeticism comes from, I think.

01:21:36 - Monarch Wadia

Yes. So the actual symbol that should have been used is this one, which is a rod with a snake on it. That's a rod of Asclepius. That's the right symbol to use, because this symbolizes healing. This does not symbolize healing. This symbolizes Mercury, and Mercury does not. This is alchemy.

Now, what I've heard is that this was not on purpose. The artist who was tasked with coming up with a logo for the medical society, he didn't know what he was doing, and he used the wrong symbol, which is plausible. But it's a subconscious, collective, unconscious Freudian slip of the highest magnitude.

01:22:19 - Anthony Campolo

So you're gonna love this. There's a Substack I follow where someone has this whole theory about how the snake specifically, and rituals around snake venom, which can have psychedelic properties, apparently is what led to the development of human consciousness.

And that's why you have all of these snake myths, like the Garden of Eden and stuff like that. And that is actually based on these really intense early ancient rituals based around snakes and snake venom. It's a really interesting concept.

01:22:56 - Monarch Wadia

That's really interesting. Did you hear about the orangutan using medicine?

01:23:03 - Anthony Campolo

No.

01:23:04 - Monarch Wadia

Oh, this was this week. So, orangutan for the first time seen using a plant as medicine. What this guy did is he got wounded in a fight, and you see there's leaves in his mouth.

01:23:21 - Anthony Campolo

Mhm.

01:23:22 - Monarch Wadia

He's chewing a very specific vine that's known to scientists to have anti-inflammatory and antibacterial properties. It's used to treat malaria and diabetes in humans. So after getting hurt, this orangutan, ape not monkey, went and chewed this very specific vine that they don't normally eat. And then he started applying it to his wound.

And in eight days, that wound, that's a really gnarly wound, man, that wound disappeared in eight days.

01:23:51 - Anthony Campolo

That's super interesting and makes sense. They're plants, they're in nature. So it makes sense that animals would also discover and use them, just like we did through trial and error.

01:24:03 - Monarch Wadia

Right? I totally dig it. And I bet that they teach each other this stuff too. They probably saw, oh, my uncle got hurt and my dad went and put this thing on his arm.

01:24:16 - Anthony Campolo

And this also adds more credence to Terence McKenna's famous stoned ape theory, which is like early primates ate psychedelic mushrooms and by tripping balls, they eventually gained consciousness and self-awareness and then became humans.

01:24:31 - Monarch Wadia

That's another interesting one. It goes deeper. He thought, poor guy, he really should have been around for this. I wonder what he would have said about AI.

01:24:42 - Anthony Campolo

Oh, he would have loved it.

01:24:45 - Monarch Wadia

He said that the mushrooms, so we know now that mushrooms form these massive underground mycelial networks, and trees will use these mycelial networks to actually transfer food to each other and warn each other. So it's like the internet of the forest almost is what mushrooms are. They do data transfer already.

So one of the things that he was really interested in was, well, are these mushrooms actually some kind of intelligence? And if so, mushrooms were the first life that formed on land. Because mushrooms are the things that actually broke the rocks to turn the rocks into soil. And that's one of their functions even today, mushrooms will break rocks down into soil.

And if they're that old, they've had billions of years to come to intelligence. I don't know, man. I'm not saying I believe this shit.

01:25:48 - Anthony Campolo

I got a quote here saying fungi were some of the first complex life forms on land, mining rocks for mineral nourishment, slowly turning them into what would become soil. They form a symbiotic relationship with liverworts, the earliest plants. Sounds like there's science behind this. You're not just talking out of your ass.

01:26:06 - Monarch Wadia

No, I'm not. So the tips of their mycelia, they first excrete acid. Not the psychedelic type, like the actual shit that'll hurt you, like alien acid onto the rock. And then they'll dig into the rock, and then they'll keep digging.

Or... we should hang up soon.

The pressure of that movement gets so intense that the rock actually splits open, like an explosive splitting open the rock. And that's how they just dig themselves into the rocks, and the acid and the breaking movement turns the rocks into soil, which you would not think a mushroom would do.

01:26:44 - Anthony Campolo

Right. Cool, man. This is super fun. I love going off on these tangents with you because I really think that there's so many interesting things around here, and it's not just code and tech and whatnot. There's a bigger thing here that connects to what it means to be human itself. And I have few people that I can engage with in that type of topic and space. So I love this stuff, man. I really love this stuff. Anything else you want to kind of wrap up with?

01:27:12 - Monarch Wadia

Nah. IP man, you had some really cool ideas. He's another one of these smart folks who gets it. He's like, we're all mushrooms. Yeah, this one. Humans. I don't want to pay taxes. Nah, man. I'm good. Let's wrap it up. This was really great. This was fun.

01:27:28 - Anthony Campolo

Yeah, for sure. What do you want to do next week?

01:27:31 - Monarch Wadia

Man, I really hope that next week I'll have function calling done, and I really need to refactor. I have enough unit tests, I need to refactor the drivers and maybe I'll add, well, I don't know. I'll have something new next week with Ragged. Cool.

01:27:46 - Anthony Campolo

Awesome, man. And what I plan to have done is actually have one of these transcript AIs integrated into the flow, along with figuring out what to do about the DLP, because that's another thing. If I want this to be a pure NPM package, I need to kind of just use a JavaScript library to get the YouTube metadata.

So I'm gonna look at something called YouTube JS. And if I can integrate those things, then you should be able to just import your NPM package and run it with like an API key or something for whatever transcription thing you want to use. So yeah, we've both kind of set goals for ourselves, and we'll see where we are next week.

01:28:25 - Monarch Wadia

Thanks, man. I'm looking forward to seeing the progress.

01:28:30 - Anthony Campolo

Thanks so much for being here. And can you tell me how to pronounce again? Abhimanyu.

01:28:37 - Monarch Wadia

Abhimanyu.

01:28:38 - Anthony Campolo

Abhimanyu. Okay. Abhimanyu. Thank you for always being here, man. Appreciate it. All right, and we will catch you guys next week. Bye bye.

On this pageJump to section