4 ms·
I have looked for the value and never really found it. It seems to mostly be (bad) abstractions around things you could easily do without langchain. Take one
by codeptualize 3y ago
I have looked for the value and never really found it.
It seems to mostly be (bad) abstractions around things you could easily do without langchain.
Take one of the most important llm things: prompt templates. What does langchain add over a simple function and an f string? Maybe I'm missing the point, but I can't find anything.
Anyway, it seems people like it so who am I to judge, but I don't like making our codebase dependent on a huge new library with unnecessary abstractions and little or no value add.
- davesque 3y agoHonestly, it's hard to even tell if people really like it or if the LangChain team have just done a really good job of evangelizing for it. I saw that they did some kind of interview with Andrew Ng the other day. I feel like that sort of thing doesn't just happen by accident, but because someone actively reached out to him, especially considering that LangChain has only been on the scene for a couple of months.
- minimaxir 3y agoLangChain has been active since last year (after the ReAct paper was released), but gained most of its popularity after the ChatGPT hype.
- codeptualize 3y agoTrue, you gotta respect the marketing, they definitely got that covered and actually created some real value there, a $10M seed round to be precise. I think they got the timing right and the idea is kinda alluring as well: have everything standardized, pluggable and swappable sounds neat. Just doesn't really work. They are also doing a great job at maintaining the mirage of adding value. Templates for example will work totally fine, as they are just f strings. It seems there are plenty of people who don't really think twice about it, and they have captured that audience very well. There is also a low barrier to contribute as everything is kinda basic, that must help a lot as well.
- trolan 3y agoI actually found a lot of value when I left the LangChain ecosystem and started using jinja templates. The syntax from home assistant moved over and I can just pass dictionaries to render a prompt now.
- saulpw 3y agoI agree, and that's why I've been working on AIPL[0]. Our first v0.1 release should be in the next few days. https://github.com/saulpw/aipl https://github.com/saulpw/aipl It's basically just a simple scripting language with array semantics and inline prompt construction, and you can drop into Python any time you like.
- codeptualize 3y agoWith peace and love, why would I not just write some code? LLM pipelines are not very complex: it's string manipulation, api calls, and storage, there is not much more too it. All are quite easy to do, often needing nothing else but the standard library. For more complex cases or bigger scale you have a plethora of battle tested solutions to manage things like queues, back off and retries, concurrency, etc. Maybe it's me missing the point (again), but I wonder what the added value is of learning a new language to do things that are super easy to do in Python/JS/whatever my language of choice is? Or maybe I'm just not be your target audience, very possible.
- Reticularas 3y agoI get this feeling too "maybe I'm not the target audience" This feeling is followed closely by "Who is the target audience?". Some abstract concept of an audience doing complex LLM work to accomplish... something? The value in statistics analysis for LLMs is clear, the value in chaining responses is very unclear.
- rdli 3y agoI found it helpful for prototyping and learning some basics, but I quickly found the abstractions were not useful and had to implement my own.
- TeMPOraL 3y ago> Take one of the most important llm things: prompt templates. What does langchain add over a simple function and an f string? Maybe I'm missing the point, but I can't find anything. Seconding. Ever since learning about it, then seeing a co-worker use it for some simple embedding job (and being impressed in how few lines of code it took, but that's actually not thanks to LangChain), then reading its docs end-to-end, about once a week, I find myself going through the following sequence of thoughts: 1. Alright, let's set up LangChain and implement my ${most recent harebrained idea}; 2. Oh, but it's in Python. I don't like Python, I don't know Python, I hate dealing with its dependency issues even more than with NPM ones. Could I do things I need from it directly in ${my preferred environment, which half the time is just Emacs}? 3. Wait a minute. Chaining "DAGs" the way it does is basically equivalent to a sequence of function calls in a while loop, occasionally mixed with some if/else or goto. Generating prompts is... string interpolation that can be wrapped in a helper function. LMAO. 4. No, really. Why bother? The only useful thing here seems to be discoverability - i.e. a list of toolkits it supports, and said support working as intro 101 tutorial. Given the surface areas of those plugins are so small, I can literally wrap what I need in a bunch of functions, and then do the "chain" part as... plain old sequential code. So yeah, right now, I think about the only value this project has is in being a convenient list of AI tools with examples of using their APIs. Everything else seems better done either by coding it directly, or (for certain needs) by building up a more complex dataflow framework.
- codeptualize 3y agoFair assessment. Maybe you have found the value: it’s a library of code snippets. There is truly something to say for that, but maybe it had worked better as a documentation site (kinda ironic as their docs are not super great). > plain old sequential code This!! Besides the templates this is the most confusing thing, it is indeed the same as running lines of code sequentially. P.S. for python dependencies, check out Poetry, not perfect but a lot more sane than the other options.