Apache Hamilton (incubating)

510 posts

Apache Hamilton (incubating) banner
Apache Hamilton (incubating)

Apache Hamilton (incubating)

@hamilton_os

OS project to build testable & modular dataflows (DAGs) in #python Get lineage & observability for free. Use in DE, DS, ML, LLMs contexts. Run by @TheASF.

San Francisco Katılım Mart 2022
93 Takip Edilen249 Takipçiler
Apache Hamilton (incubating) retweetledi
Stefan Krawczyk
Stefan Krawczyk@stefkrawczyk·
Things I hear in private circles: "even the CEOs of @langchain and @llama_index say there is little value in abstracting over LLM API calls". If you haven't been following Apache @hamilton_os or Apache @burr_framework that's exactly what we've been saying for years -- you need to own the LLM call -- why? because customization here is what is going to deliver value, not the POC you threw together with those overly abstract VC backed frameworks. Plug (1): building on Apache Hamilton &/or Apache Burr is a better investment because you can drive the direction. Plug (2): @hugobowne and I cover this our @MavenHQ course -maven.com/s/course/67c6a…
English
0
3
5
594
Jeremy Howard
Jeremy Howard@jeremyphoward·
Well that's sad (Sonnet 3.7)...
Jeremy Howard tweet media
English
27
2
161
21.5K
Samuel Colvin
Samuel Colvin@samuelcolvin·
We've just released @Pydantic AI v0.0.19. This comes with the biggest new feature since we announced PydanticAI — graph support! I was originally cynical about graphs, but I'm now really excited about their use cases, both with GenAI and in general purpose development. Our approach to graphs — using type hints to define nodes and edges, makes graphs less work to implement and much much safer to develop and extend. I honestly think this graph API might be the single most innovative thing I've ever built in Python! If you have complex logic flows, or logic that is distributed over compute and time, I think graphs will be a massive win. It's still early, but I think the potential is obvious. ai.pydantic.dev/graph/
Samuel Colvin tweet media
English
34
109
850
84K
Apache Hamilton (incubating)
Apache Hamilton (incubating)@hamilton_os·
@samuelcolvin @rrherr @pydantic Yes. Jury still out how coupled you want graphs to be. That's why we take a different edge definition strategy. Our approach makes it easy to add new nodes without having to perform surgery on existing code. Trade-offs of graph scale and maintenance.
English
0
0
2
92
Samuel Colvin
Samuel Colvin@samuelcolvin·
@hamilton_os @rrherr @pydantic Pydantic Graph nodes can be used in any graph with the same state and dependency types. But they're designed to be type checked too. And since it's just standard type checking, you can use anything that has proper type hints: dataclasses, pydantic models, pandas, polars etc.
English
1
0
1
159
Arun Sharma
Arun Sharma@arundsharma·
@samuelcolvin @rrherr @pydantic @hamilton_os So pydantic's main strength is that it does runtime data validation. For that people pay a 4x construction cost. For SQLModel it's more like 10x. #issuecomment-2593933826" target="_blank" rel="nofollow noopener">github.com/bespokelabsai/…
English
2
0
0
54
Apache Hamilton (incubating)
Apache Hamilton (incubating)@hamilton_os·
@samuelcolvin @rrherr @pydantic Hamilton's functions are independent of each other and could be part of many DAGs. So type checkers wouldn't be able to handle things anyway. This is why Hamilton checks things at graph construction time. Optionally one can also enforce runtime object inspection.
English
1
0
4
222
Samuel Colvin
Samuel Colvin@samuelcolvin·
@rrherr @pydantic @hamilton_os Right, but because of how it's defined, stactic type checkers like mypy and pyright can't enforce that nodes are connected correctly, unlike in pydantic graph.
English
2
0
5
343
Apache Hamilton (incubating) retweetledi
Stefan Krawczyk
Stefan Krawczyk@stefkrawczyk·
Super excited for this post by @thierryjean that provides a well laid out golden path for folks iterating in the #GenAI space. This follows up from my tweet yesterday about framework coupling. If the framework allows loose coupling, then graduating out of it isn't a thing you'll run into. In this post Thierry lays out to use Burr and how it doesn't get in your way as you build more complex and sophisticated workflows and agents. blog.dagworks.io/p/the-graduati…
Stefan Krawczyk tweet media
Stefan Krawczyk@stefkrawczyk

A @burr_framework user shared this video youtube.com/watch?v=evmZTh… with me on the "problem with frameworks". Worth a watch. I 💯% agree with the take home. The "coupling problem" is the reason why people graduate out of frameworks like @langchain & @llama_index. You become overly coupled and then find yourself overtime asking why am I using this? It's not that the framework authors did this maliciously, it's just that they optimized for their needs, in this case for POCs, which is not the same as long lived maintainable code. That's why we see people either build their own frameworks, or they hopefully discover @hamilton_os & @burr_framework and realize that there are frameworks that allow "loose coupling" that don't get in your way (as a platform person and framework author we optimize for maintainable code). A good example of this is @FastAPI - very easy to not couple your business logic and iterate quickly no matter the age of the code. So how can you tell where a framework lies on the spectrum of tight coupling versus not? Some tests: (1) How many "objects" do I need to use from the framework to couple the logic I want to happen? The fewer the better. E.g. with @hamilton_os by default it's 0. With @burr_framework it's just 1 and that's due to state for edge transitions, but that's easy to decouple from. (2) How many framework imports do you need to get something to run? The less the better - consider @burr_framework vs @langchain using #langgraph (see images) If you're feeling framework pains, or are curious on how it can be done right, checkout: github.com/DAGWorks-Inc/b… (agents) github.com/DAGWorks-Inc/h… (pipelines/tools) or subscribe to our blog - blog.dagworks.io #python #opensource #genai #llmops

English
0
5
4
356
Apache Hamilton (incubating) retweetledi
Stefan Krawczyk
Stefan Krawczyk@stefkrawczyk·
A @burr_framework user shared this video youtube.com/watch?v=evmZTh… with me on the "problem with frameworks". Worth a watch. I 💯% agree with the take home. The "coupling problem" is the reason why people graduate out of frameworks like @langchain & @llama_index. You become overly coupled and then find yourself overtime asking why am I using this? It's not that the framework authors did this maliciously, it's just that they optimized for their needs, in this case for POCs, which is not the same as long lived maintainable code. That's why we see people either build their own frameworks, or they hopefully discover @hamilton_os & @burr_framework and realize that there are frameworks that allow "loose coupling" that don't get in your way (as a platform person and framework author we optimize for maintainable code). A good example of this is @FastAPI - very easy to not couple your business logic and iterate quickly no matter the age of the code. So how can you tell where a framework lies on the spectrum of tight coupling versus not? Some tests: (1) How many "objects" do I need to use from the framework to couple the logic I want to happen? The fewer the better. E.g. with @hamilton_os by default it's 0. With @burr_framework it's just 1 and that's due to state for edge transitions, but that's easy to decouple from. (2) How many framework imports do you need to get something to run? The less the better - consider @burr_framework vs @langchain using #langgraph (see images) If you're feeling framework pains, or are curious on how it can be done right, checkout: github.com/DAGWorks-Inc/b… (agents) github.com/DAGWorks-Inc/h… (pipelines/tools) or subscribe to our blog - blog.dagworks.io #python #opensource #genai #llmops
YouTube video
YouTube
Stefan Krawczyk tweet media
English
1
3
7
600
Apache Hamilton (incubating) retweetledi
voe.lo
voe.lo@LignoL23·
FlowerPower - Python workflow framework Based on @hamilton_os and APScheduler 🔄 DAG-based pipelines ⏰ Scheduling ⚙️ Simple YAML-based setup 📊 Tracking 📡 Distributed execution github.com/legout/flowerp…
English
1
5
9
549
Apache Hamilton (incubating) retweetledi
Heavybit
Heavybit@heavybit·
In ep. 22 of Generationship, @rachelchalmers speaks with Elijah Ben Izzy (@elijahbenizzy) of @DagWorks about the importance of streaming in chatbot interactions, highlighting how partial, real-time responses can significantly enhance user engagement. hubs.ly/Q02T9RdP0
Heavybit tweet media
English
0
3
5
238