https://old.reddit.com/r/LangChain/comments/13fcw36/langchain_is_pointless/ jump to content my subreddits edit subscriptions * popular * -all * -random * -users | * AskReddit * -worldnews * -gaming * -funny * -pics * -news * -movies * -explainlikeimfive * -todayilearned * -LifeProTips * -tifu * -TwoXChromosomes * -OldSchoolCool * -Jokes * -videos * -dataisbeautiful * -Showerthoughts * -aww * -gifs * -books * -science * -IAmA * -askscience * -DIY * -Music * -nosleep * -UpliftingNews * -food * -space * -Futurology * -sports * -nottheonion * -InternetIsBeautiful * -mildlyinteresting * -announcements * -WritingPrompts * -Documentaries * -history * -gadgets * -EarthPorn * -photoshopbattles * -GetMotivated * -philosophy * -creepy * -listentothis * -blog more >> reddit.com LangChain * comments * other discussions (3) Want to join? Log in or sign up in seconds.| * English [ ][] [ ]limit my search to r/LangChain use the following search parameters to narrow your results: subreddit:subreddit find submissions in "subreddit" author:username find submissions by "username" site:example.com find submissions from "example.com" url:text search for "text" in url selftext:text search for "text" in self post contents self:yes (or self:no) include (or exclude) self posts nsfw:yes (or nsfw:no) include (or exclude) results marked as NSFW e.g. subreddit:aww site:imgur.com dog see the search faq for details. advanced search: by author, subreddit... this post was submitted on 12 May 2023 93 points (97% upvoted) shortlink: [https://redd.it/13fc] [ ][ ] [ ]remember mereset password login Submit a new link Submit a new text post Get an ad-free experience with special benefits, and directly support Reddit. get reddit premium LangChain joinleave4,522 readers 586 users here now a community for 5 months MODERATORS * message the mods discussions in r/LangChain <> X How to Use OpenAI Functions within the LangChain: A Comprehensive Guide handling simultaneous requests for langchain chatbot in gcloud 3 I want to create a custom tool with an enum input, LangChain invents enum values which don't exist 1 [aRVd4Gjn] Second Brain Assistant using langchain 4 * 2 comments Is there decent open-source LLMs faster than Falcon-7b-instruct? 1 * 1 comment [60k73tOo] [Colab Notebook] Launch quantized MPT-30B-Chat on Vast.ai using text-generation-inference, integrated with ConversationChain 2 Trying to implement the SequentialChain in Langflow, but facing error in it 6 * 3 comments Is a Vector DB the answer here? 2 * 3 comments Running query on 'Views'.. Not tables 1 * 1 comment How do I, using retrievalQA chain, summarize the data in my FAISS database Welcome to Reddit, the front page of the internet. Become a Redditor and join one of thousands of communities. x 92 93 94 Langchain is pointless (self.LangChain) submitted 1 month ago * by SuperConductiveRabbi It's filled with crap like this: for i in range(n_results, 0, -1): try: return self._collection.query( query_texts=query_texts, query_embeddings=query_embeddings, n_results=i, where=where, **kwargs, ) and this: def embed_documents(self, texts: List[str]) -> List[List[float]]: texts = list(map(lambda x: x.replace("\n", " "), texts)) embeddings = self.client.encode(texts, **self.encode_kwargs) return embeddings.tolist() and this: class CharacterTextSplitter(TextSplitter): """Implementation of splitting text that looks at characters.""" def __init__(self, separator: str = "\n\n", **kwargs: Any): """Create a new TextSplitter.""" super().__init__(**kwargs) self._separator = separator def split_text(self, text: str) -> List[str]: """Split incoming text and return chunks.""" # First we naively split the large input into a bunch of smaller ones. if self._separator: splits = text.split(self._separator) else: splits = list(text) In short: https://i.imgur.com/OffEJTR.gifv Embeddings is just a do-nothing wrapper for SentenceTransformers. Chroma is just a do-nothing wrapper for ChromaDB. It's filled with "helper" functions that just call normal Python functions. A dedicated TextSplitter that calls split() from builtins.py? What? Why? Templates are no more useful than calling .replace() on a string. "texts" are just strings and "documents" are just a pointless dict that contain "texts." Just load the strings from your datasource yourself. The README is both grandiose and vague. The documentation is out-of-date and inconsistent. The import footprint is weirdly massive--highly modularized but nothing seems to do anything that'd take more than a few CPU cycles. There's not really a standard interoperable datatype, so you're actually led further afield than if you had just clearly defined the simple lists and strings required for hitting an LLM. The very concept of chaining operations when interacting with LLMs doesn't really make sense to me: it's basically one requests call to a generation backend, but it's not like it even handles websockets and streaming for you. Why chain together wrapper classes when you can just do the operations yourself? This seems like a beginner's project that blew up because it's riding a tidal wave of interest in the broader topic. * 95 comments * share * save * hide * report all 95 comments sorted by: best topnewcontroversialoldrandomq&alive (beta) [ ] Want to add to the discussion? Post a comment! Create an account [-]catpissflannigan 26 points27 points28 points 1 month ago (14 children) Langchain is unfortunately very poorly designed and is filled with overlapping abstractions which leads to a lot of confusion. The documentation suffers from poor organisation too * permalink * embed * save * report * give award * reply [-]SuperPanda09 4 points5 points6 points 1 month ago (0 children) So I will be very honest. We found langchain documentation to be very poor. For using internally, we made something like a ChatGPT on top of Langchain's code and docs. hosted it on https://langchainx.web.app /. We are eventually not using any langchain functions or helpers but still keeping the portal available for the langchain community. Let me know if you use it and find it helpful * permalink * embed * save * parent * report * give award * reply [-]krrish253 0 points1 point2 points 1 month ago (12 children) Can you think of any alternative of langchain for now? * permalink * embed * save * parent * report * give award * reply [-]catpissflannigan 1 point2 points3 points 1 month ago (1 child) Griptape * permalink * embed * save * parent * report * give award * reply [-]mapcat 0 points1 point2 points 3 hours ago (0 children) Griptape Only Python? No thanks * permalink * embed * save * parent * report * give award * reply [-]Just-Contribution834 0 points1 point2 points 10 days ago (8 children) I AM LOOKING FOR LITERALLY ANY ALTERNATIVE TO LANGCHAIN that is not in python, anything that is .net or .cpp PLEASE!!! * permalink * embed * save * parent * report * give award * reply [-]dev-8060 0 points1 point2 points 6 hours ago (3 children) How about Ruby? Check out the boxcars gem - https://github.com/ BoxcarsAI/boxcars * permalink * embed * save * parent * report * give award * reply [-]UniversalJS 0 points1 point2 points 5 hours ago (2 children) Op seems to look for an efficient version... So going from python to Ruby is not helping * permalink * embed * save * parent * report * give award * reply [-]dammit_reddit_ 0 points1 point2 points 4 hours ago (0 children) An efficient version of a library that chains slow as fuck non-deterministic APIs over http? Any efficiency gain would be indistinguishable. * permalink * embed * save * parent * report * give award * reply [-]5fec 0 points1 point2 points 51 minutes ago (0 children) As u/damnit_reddit_ points out you seem confused about the idea of efficiency and speed in software engineering. How could this problem possibly be CPU-bound on the client side? GP is presumably asking for .NET or C++ because that is their ecosystem. Either that or they share your confusion. * permalink * embed * save * parent * report * give award * reply [-]azhenley 0 points1 point2 points 5 hours ago (0 children) Semantic Kernel * permalink * embed * save * parent * report * give award * reply [-]StefanSabev 0 points1 point2 points 4 hours ago (0 children) .net semantic kernel is in .net * permalink * embed * save * parent * report * give award * reply [-]pixiedustnomore 0 points1 point2 points 3 hours ago (0 children) Not very popular: https://github.com/LagPixelLOL/ChatGPTCLIBot * permalink * embed * save * parent * report * give award * reply [-]PhroznGaming 0 points1 point2 points 2 hours ago (0 children) .NET == Semantic Kernel https://github.com/microsoft/semantic-kernel * permalink * embed * save * parent * report * give award * reply [-]Spitfire3788 0 points1 point2 points 48 minutes ago (0 children) We launched in mid of January and are working on improving architecture design, usability and debugging of neuro-symbolic systems with strong focus on LLM research. https://github.com/Xpitfire/symbolicai https:// symbolicai.readthedocs.io/en/latest/README.html * permalink * embed * save * parent * report * give award * reply [-]uhohritsheATGMAIL 19 points20 points21 points 1 month ago (2 children) I don't disagree, but I'm mostly here for the interoperability + agents. This is one of those 'Yes I know how to code, no I don't want to spend hours working on boilerplate.' * permalink * embed * save * report * give award * reply [-]119b63 1 point2 points3 points 10 days ago (1 child) Eh, except when the boilerplate is an obstacle. Try building a retrieval QA chain _with_ memory using langchain. You can't unless you override one of the chain's prompt templates. Which means you have to dig into the code with a debugger to figure out exactly where it happens and what to do. Cobbled together the same exact thing with plain openai and chromadb in like an hour. If you know what you're doing sometimes langchain works against you. And I'm a huge fan of libraries and frameworks and whatever makes your life easier but I found langchain to, well, not do that. Even agents are simply loops with a carefully crafted prompt that gives you whatever you need in the right format so you can use it to call external functions (which is now kinda pointless with openai's function calls). The value added of langchain, so far, doesn't justify its bloatedness. * permalink * embed * save * parent * report * give award * reply [-]uhohritsheATGMAIL 1 point2 points3 points 10 days ago (0 children) Yes I agree. Lucky that as you mentioned, you can throw that example together in an hour. * permalink * embed * save * parent * report * give award * reply [-]whyzantium 23 points24 points25 points 1 month ago (15 children) Say you wrote a program without langchain that uses GPT3.5 as a language model, chroma for your vector store, and you wrote some code for splitting your text docs. Now let's say a week later you want the same program to use a local Llama language model, faiss for vectors, and a want to split PDF docs instead of text docs. You'd pretty much have to rewrite the whole thing. But because langchain's codebase is written with substitutionality at its core, you could swap out the model, vector store and splitter in under a minute. That's not the only reason to use langchain of course. But these kind of libraries are written in a way that saves you time in the long run. If you just want to write a one off script, then of course you could do this without langchain. * permalink * embed * save * report * give award * reply [-]SuperConductiveRabbi[S] 3 points4 points5 points 1 month ago (2 children) That's definitely a risk, but the solution isn't to abstract everything you possibly can. Are you really going to want to split your text with a different underlying text splitter? No. The solution is to be smart about what you plan for. We know models change constantly so you should abstract that--make an interface with _call like Langchain does, that makes sense, then your consumer code can be agnostic as to whether it's hitting OpenAI, ooba, kobold, etc. * permalink * embed * save * parent * report * give award * reply [-]allisonmaybe 1 point2 points3 points 1 month ago (0 children) LangChain has a place in the world and the ability to swap out functionality could have a lot of value to the discerning user. That said, most of Langchain use is for TikTok hype * permalink * embed * save * parent * report * give award * reply [-]Icaruswept 1 point2 points3 points 8 days ago* (0 children) Not true. I got stuck in this specific use case and ended up spending pointless days trying to figure out the data types langchain is passing underneath its poorly documented classes. It's a nice springboard in theory, but in practice it turned out to be far easier to just write my own functions (with the exception of using llangchain to load the model; it's a wrapper on top of the python llama.cpp library, and doesn't do much, but it's readable). * permalink * embed * save * parent * report * give award * reply [-][deleted] 1 month ago (8 children) [deleted] [-]chat_harbinger 2 points3 points4 points 1 month ago (3 children) Main problem is how do you write a program that uses gpt 3.5 as a language model if langchain don't let you change a prompt. It is a huge task to rewrite a prompt for something more specific. Is this a joke or are you actually this bad at programming? If you answer me without getting offended, I'll tell you exactly how to do it. * permalink * embed * save * report * give award * reply [-]Nokita_is_Back 2 points3 points4 points 1 month ago (0 children) Wo you woke up and chose to be a gaslighting cunt ey? * permalink * embed * save * parent * report * give award * reply [-][deleted] 1 month ago (1 child) [deleted] [-]chat_harbinger 0 points1 point2 points 1 month ago (0 children) Choosing to remain ignorant isn't the optimal decision, but it certainly is a bold one. * permalink * embed * save * report * give award * reply [-]water_bottle_goggles 2 points3 points4 points 1 month ago (2 children) you can change the prompts of the chain * permalink * embed * save * report * give award * reply [-][deleted] 1 month ago (1 child) [deleted] [-]Narrow-Importance65 -1 points0 points1 point 18 days ago (0 children) just open that file and change the prompt what is so hard about it? * permalink * embed * save * report * give award * reply [-]uhohritsheATGMAIL -1 points0 points1 point 1 month ago (0 children) Want to code in Spanish? Portuguese? French? No, I never have. * permalink * embed * save * report * give award * reply [-]SnooCompliments7527 0 points1 point2 points 1 day ago (0 children) In practice, no foundation model beats the OAI suite and you'd probably have to redo much of your prompts (and maybe some of your internal logic anyway) if you wanted to switch away. On the vector db front, I am not as certain, but I'm still pretty certain that Chroma will be a top tier competitor for the foreseeable future. That said, even if you did decide you wanted to move away from the OAI suite, langchain poorly abstracts over it, hence why langchain's Anthropic is "model_name" and langchain's OAI is "model" (or the other way around, I forget). * permalink * embed * save * parent * report * give award * reply [-]zeugmasyllepsis 0 points1 point2 points 4 hours ago (0 children) But because langchain's codebase is written with substitutionality at its core, you could swap out the model, vector store and splitter in under a minute. Pragmatically, that has not been my experience. I've been digging into Langchain over the last few months for just this promise. In reality, swapping between models leads to a rabbit hole of installing new dependencies (sometimes requiring custom configuration or compiling from scratch - like bitsandbytes), swapping custom document logic out for a JSONLoader errors because of shell escaping issues in the underlying jqbindings, and you burn time trying to figure out exactly what the difference between load_qa_chain(..) and RetrievalQA.from_chain_type(..) are. I think the motivation behind Langchain is good. The ecosystem is hungry for abstractions over common use-cases and components, but the landscape as a whole is still so unstable, and it's not clear that Langchain has identified the right abstractions yet to me. Too many details leak through from underlying implementations, too much overlap between components, and the rate of change fast outpacing the documentation to support those changes. Hopefully contributors keep driving the project to something closer in quality to the Scikit-Learn model interfaces, and are able to deliver on the promise of seamless swapability. * permalink * embed * save * parent * report * give award * reply [-]Les-El 8 points9 points10 points 1 month ago (3 children) Idk, man. I can't code. Like, seriously, I need to look up how to try statements. But with LangChain, I've got my own custom chatbot who even gives me lip from time to time. I hope to have him browsing on his own by this weekend. And when I decide it's time to change my prompts, or my tools, or even my LLM, the modular switching out is super easy. I would say LangChain has its points. * permalink * embed * save * report * give award * reply [-]SuperConductiveRabbi[S] 2 points3 points4 points 1 month ago (2 children) It does look like a good way for beginners to get started, and the tutorials tend to be short, as long as you don't stray away from what they want to do. But as you want to do more advanced things I think you can naturally learn more (and ask ChatGPT how to learn what you need, too). So maybe "pointless" is too harsh. But the README and the hype does make it seem like it's more advanced and deeper than it is. * permalink * embed * save * parent * report * give award * reply [-]ladybaybee 0 points1 point2 points 1 month ago (1 child) What are the more advanced things that I can ask GPT to teach me? Actually very curious, I've started to play with LangChain but already seems like I am late to the party. Incredible how fast things are moving * permalink * embed * save * parent * report * give award * reply [-]SuperConductiveRabbi[S] 0 points1 point2 points 1 month ago (0 children) Basically ask it anything you'd ever ask a programmer sitting there with you. It can be basic, like, "what does def __init__(self) do?" or "I'm new to Python and using LangChain. I heard it's calling underlying libraries but I don't know what that means. I think I'm using the Pycharm IDE. How can I learn more?" etc. There's no limit at this point, it's amazing. But if you mean more advanced like, what to do to move beyond LangChain, that depends too on what you want to do. But either see what it's doing under the hood and start there (like run SentenceTransformers yourself, make your own prompt templates, etc.) or pick some project you'd like to accomplish. * permalink * embed * save * parent * report * give award * reply [-]crazysim 2 points3 points4 points 1 month ago (0 children) I think of it like an ORM. A lot of the comments around here seem to be similar to ones in ORM vs non-ORM debates. I think there's a place and time for both. * permalink * embed * save * report * give award * reply [-]allisonmaybe 4 points5 points6 points 1 month ago (0 children) I'm sure the entire thing was whipped up in the first month of this new AI revolution. I never quite thought any of these toolkits were amazing considering how quickly they came out. The hype train is a hell of a drug tho. I'm working on an LLM toolkit of my own that includes context management, embedding tools, an embedding based command chooser, chaining, and optimized TTS that works with chunks as they're coming in. More than anything it's a way to learn all I possibly can about LLMs and how to work with them. Its not quite there yet but considering it's only been 3 months since chat came out, that's understandable. * permalink * embed * save * report * give award * reply [-]Zealousideal-Cry7806 1 point2 points3 points 1 month ago (2 children) So what is the lesson here? Should I just look for particular libs to recreate what langchain is doing? * permalink * embed * save * report * give award * reply [-]kyrodrax 2 points3 points4 points 1 month ago (0 children) Seen this one? https://www.reddit.com/r/Python/comments/13djuec/ github_griptapeaigriptape_python_framework_for_ai/?utm_source=share& utm_medium=ios_app&utm_name=ioscss&utm_content=1&utm_term=1 * permalink * embed * save * parent * report * give award * reply [-]SuperConductiveRabbi[S] 0 points1 point2 points 1 month ago (0 children) If you're a beginner I'd recommend starting with Langchain, nothing wrong with that. But as you go use "go to declaration" in your IDE from time to time and see what it's doing under the hood. In most cases you can just use the underlying library, like the examples I gave above. * permalink * embed * save * parent * report * give award * reply [-]fujiitora 1 point2 points3 points 1 month ago (0 children) Yeah, a higher up wanted me to base a project off of this, but constant bugs and improper documentation led me to just building my own tooling :/ * permalink * embed * save * report * give award * reply [-]productboy 1 point2 points3 points 1 month ago (0 children) Came for the abstraction; stayed for the agents... * permalink * embed * save * report * give award * reply [-]NSynca 1 point2 points3 points 1 month ago (0 children) just prototyped something simple for js/ts: https://github.com/ gsidsid/gptio. imo just making custom tools the default practice for ppl adding long term memory or document stuff is the way, esp when it's all evolving so quick. obv there are limits to this approach * permalink * embed * save * report * give award * reply [-]Holiday_Piccolo3380 1 point2 points3 points 1 month ago (1 child) My favorite is the PrompTemplate class AKA an f string !!!! * permalink * embed * save * report * give award * reply [-]SnooCompliments7527 0 points1 point2 points 1 day ago (0 children) Yes, I was personally quite surprised when I realized it was nothing other than an f-string lol * permalink * embed * save * parent * report * give award * reply [-]Narrow-Importance65 1 point2 points3 points 18 days ago (0 children) My main problem with it is how so many modules explain how to do one or two things then if you dig into the code you realize theres like 10 things built in there that arent documented AT ALL. i guess thats what happens when you grow that fast. * permalink * embed * save * report * give award * reply [-]SnooCompliments7527 1 point2 points3 points 1 day ago (0 children) The documentation is awful. There are many times that I have to traverse the source code myself to figure out what something does. Even then, it's miserably awful because you find the source code is literally all just func(**kwargs): next_func(**kwargs)... Oh, and tons and tons and tons of Pydantic line noise... * permalink * embed * save * report * give award * reply [-]chat_harbinger 1 point2 points3 points 1 month ago (29 children) So where are your push requests, big guy? * permalink * embed * save * report * give award * reply [-]AlgoTrade 5 points6 points7 points 1 month ago (6 children) Lmao. It's a pull request, new guy. * permalink * embed * save * parent * report * give award * reply [-]chat_harbinger 0 points1 point2 points 1 month ago (5 children) Ex-fucking-scure you? New to what? Automated, by the way. Every single day I was pushing commits to existing repos that had updates and creating a repo a day for my new work. Everyday for a whole summer. New to what? * permalink * embed * save * parent * report * give award * reply [-]AlgoTrade 3 points4 points5 points 1 month ago* (4 children) Lol, it's a pull request, pal. Even the simplest google would show you that. You push commits to your branch and then open a pull request to merge your code to master. I'm assuming your 2021 internship didn't work out, but I have some constructive criticism that might make you a better teammate in the future! "Often wrong, but never in doubt" is just about the worst thing you can do when working in a job, be open to criticism and learn from those that came before you. Don't try to prove how smart you are by fighting, do it by contributing, and learning from other. I think you'd do well to look at your attitude and how you learn from others, we all feel on top of the world when we start, but need to remain humble and remind ourselves that you are sitting on the shoulders of giants. All the best. * permalink * embed * save * parent * report * give award * reply [-]chat_harbinger 0 points1 point2 points 1 month ago (3 children) I absolutely cannot wait for people like you to be out of work on breadlines. Can't fucking wait. SMD and die painfully. * permalink * embed * save * parent * report * give award * reply [-]Best_Mord_Brazil 0 points1 point2 points 6 hours ago (1 child) I miss this mentality in software. Sometimes pedants like the person replying above you need to feel a little bit of pain. * permalink * embed * save * parent * report * give award * reply [-]danysdragons 0 points1 point2 points 5 hours ago (0 children) In this particular case, correcting them is the nice thing to do, since it could save them from embarrassing themselves later in a situation that's much higher-stakes than a reddit thread. It's a correction on a very basic thing, not a pedantic correction on some obscure esoteric point. * permalink * embed * save * parent * report * give award * reply [-]pickle9977 0 points1 point2 points 5 hours ago (0 children) Just remember, if you are doing this as a career, your goal should be to be a better engineer tomorrow then you are today, the only way to do that is to be humble, learn from mistakes and realize that today you are the worst programmer you will be for the rest of your life. * permalink * embed * save * parent * report * give award * reply [-]Trolann 1 point2 points3 points 1 month ago* (19 children) You don't request a push, you request a pull. And this is the same argument everyone gives when you criticize something they like. 'Well then make your own Twitter!' Or just accept not everything is perfect and be happy people are critical ETA: the TLC got suspended for brigading me into my universities sub and threatening violence. Because he didn't understand git. * permalink * embed * save * parent * report * give award * reply [-]chat_harbinger -2 points-1 points0 points 1 month ago (18 children) You don't request a push, you request a pull. Oh, okay. So when you're done editing your branch and want to commit changes, what command are you going to give git in bash? Is it git pull, sensei? And when you're ready to merge that branch into the master (that isn't your repo), you're just going to go ahead and do it, right? No approval required, right? Rampant autism in the programming community notwithstanding, you knew what I meant, buddy. And this is the same argument everyone gives when you criticize something they like. 'Well then make your own Twitter!' If you are a programmer and you are saying that something is wrong, and it is a public repo, the mature thing to do would be to fix the problem (the one you so obviously know how to fix since you identified it as a problem, implying a correct reference structure in your mind to compare it to), not whatever this is. Or just accept not everything is perfect and be happy people are critical While critique is generally useful for creators, telling them how they can improve, the fact that folks like you don't view things like LangChain as a communal effort, don't really seem to want to put work in to help improve it, and generally seem to think that having this negative posture in the one of the most interesting epochs of technology development to happen in your lifetime is pretty disconcerting. No one is telling you to stop b!tching, but maybe flex those fingers to whip up some code while you're b!tching. * permalink * embed * save * parent * report * give award * reply [-]SuperConductiveRabbi[S] 2 points3 points4 points 1 month ago (16 children) the mature thing to do would be to fix the problem The Mature Reddit Coding Student fixes his eyes on his dream goal: a gleaming city in the distance, where master programmers are so adept they erect towers that are beautiful and deeply functional. He sets off down the path towards it, and boldly enters the forest. Instantly he notices poor programs all around the path, many of whom have problems, and he's moved to tears. Eyes shimmering, he bends down to fix their problems, even the obviously self-inflicted ones, even the ones where any beginner would know better, even the ones where ten alternative programs may very well exist if he just goes further down the path--he helps them all. Though most programs thank him gladly, for every one he stoops to help, he notices ten more. But he's a good programmer. So he helps and helps. Old friends down the path call out to him, and one even says "you're wasting your time!" and "if you come down here you'll see you shouldn't even bother!" How dare they! He yells back in anger that they lack perspective, as he stoops again. One day, years later, his nose brushes a pavestone on the path. "Finally!" he sighs in relief, as he looks up to see if he's at the city yet. But he's shocked to see he's at the entrance of the forest! All his selfish friends have abandoned him and are specs in the distance. He realizes with dread that there'll be ten-thousand-fold more broken programs along that path all needing the help of a mature programmer like him. It's too much, and he curses everyone else's failure to do the right thing as he storms out of the forest. * permalink * embed * save * parent * report * give award * reply [-]chat_harbinger 0 points1 point2 points 1 month ago (14 children) ...We're working on AGi and this is what you think is going to happen? Is this a joke? * permalink * embed * save * parent * report * give award * reply [-]SuperConductiveRabbi[S] 4 points5 points6 points 1 month ago (12 children) ...We're working on AGi You're one push request away from making AGI. Keep going * permalink * embed * save * parent * report * give award * reply [-]Trolann 2 points3 points4 points 1 month ago (2 children) This whole chain is absolute gold and sadly it's gonna get buried. * permalink * embed * save * parent * report * give award * reply [-]AlgoTrade 2 points3 points4 points 1 month ago (1 child) I'm here for it man! And its absolutely hilarious. I'm pretty sure /u /chat_harbinger is the exact type of person that makes LangChain such a joke. * permalink * embed * save * parent * report * give award * reply [-]SuperConductiveRabbi[S] 0 points1 point2 points 1 month ago (0 children) People always think I have a problem with being disagreed with I wonder why his internship didn't work out. He blocked me after a snarky reply, so sadly no more back-and-forth * permalink * embed * save * parent * report * give award * reply [-]chat_harbinger -2 points-1 points0 points 1 month ago (7 children) If I'm being honest, the number one reason why I think that I Have No Mouth And I Must Scream may occur is because of people being dickheads on the internet. Kinda like you right now. * permalink * embed * save * parent * report * give award * reply [-]SuperConductiveRabbi[S] 1 point2 points3 points 1 month ago (5 children) I tried to help you and it didn't work. No one is obligated to tell you what you want to hear * permalink * embed * save * parent * report * give award * reply [-]chat_harbinger -1 points0 points1 point 1 month ago (4 children) The Reddit Autist Socialization Student fixes his eyes on his dream goal: a gleaming city in the distance, where people accept him as an equal and speak to him in ways that are neither derisive nor satirical. He sets off down the path towards it, and boldly enters the forest. Instantly he notices poor redditors all around the path, many of whom need help, and he leaps to action, thinking to himself that this is a chance to demonstrate his value. Eyes shimmering, he bends down to help them, even though the Redditors are telling him in every way they know of to get lost, to beat it, and to just keel over already--he "helps" them all. Though most Redditos choose not to block him immediately being a bellend, for every two he stoops to "help", one recognizes that he is an utterly hopeless menagerie of neurodivergence and arrogance and decide he's not worth their time.. But he wants desperately to be normal. So he "helps" and "helps". Redditors who he mistakes for old friends, but who are really people who have barely tolerated his existence and have their fingers hovering over the block button at all times, down the path call out to him, and one even says "take a fucking hint!" and "if you could understand social cues, you'd understand you're not wanted" How dare they! He yells back in anger that they lack perspective, as he stoops again. One day, years later, his nose brushes a pavestone on the path. "Finally!" he sighs in relief, as he looks up to see if he's at the city yet. But he's shocked to see he's at the entrance of the forest! All his "friends", who at the very least know how to mask marginally better than him, have abandoned him and are specks* in the distance. He realizes with dread that there'll be ten-thousand-fold more Redditors along that path all needing the "help" of a Reddit Autist S ocialization Student like him. It's too much, and he curses everyone else's failure to do the right thing as he storms out of the forest. RASShole. * permalink * embed * save * parent * report * give award * reply [-]SuperConductiveRabbi[S] 1 point2 points3 points 1 month ago (3 children) I didn't think that me saying your advice was bad would be that offensive to you. My point is that your assumption that developers who discover problems in random open source projects are obligated to help is silly and will distract you from more meaningful work. Langchain is one of those projects that aren't worth it, because they don't do anything novel, and you were being silly and naive for implying it's my fault for not making pull requests to it rather than discussing the problem and abandoning it for something better (the underlying libraries, in this case). Maybe I can allow others to avoid wasting their time on Langchain like I did. And by the way, you're being an asshole too by calling people you disagree with autists, neurodivergent, "retard assholes," etc. Even when they just correct your "push request" mistakes. * permalink * embed * save * parent * report * give award * reply continue this thread [-]Seefufiat 0 points1 point2 points 27 days ago (0 children) Like you being hateful towards neurodivergent people? Weird * permalink * embed * save * parent * report * give award * reply [-]pixelies 0 points1 point2 points 1 month ago (0 children) * permalink * embed * save * parent * report * give award * reply [-]Trolann 1 point2 points3 points 1 month ago (0 children) Are the other AGi developers in the room with us right now? * permalink * embed * save * parent * report * give award * reply [-]TotesMessenger 0 points1 point2 points 27 days ago (0 children) I'm a bot, bleep, bloop. Someone has linked to this thread from another place on reddit: * [/r/bestof] /u/SuperConductiveRabbi explains the plight of the push to a youthful programmer in AI. * [/r/bestofnopolitics] /u/SuperConductiveRabbi explains the plight of the push to a youthful programmer in AI. [xpost from r/ LangChain] ^If you follow any of the above links, please respect the rules of reddit and don't vote in the other threads. ^(Info ^/ ^Contact) * permalink * embed * save * parent * report * give award * reply [-]Trolann 0 points1 point2 points 1 month ago (0 children) Ok Mr. Every Problem Must Have A Solution. Maybe if someone doesn't have a solution yet they could post here with their critiques and we could all help? Maybe have a community? Nah, forget it. You make a good point. I hope you take it easier on yourself going forward. ETA: same argument back to you. If you don't like the open nature of reddit, this sub or otherwise, go make your own langchain variant, sub or otherwise and dedicate your life to it. Or just complain on the internet like OP is doing. * permalink * embed * save * parent * report * give award * reply [-]pixelies 0 points1 point2 points 1 month ago (1 child) Push request!!! * permalink * embed * save * parent * report * give award * reply [-]rismay 0 points1 point2 points 1 month ago* (0 children) To l33t programmers like OP, he could just be writing his own library... yet he's not writing it in c++ like all major AI houses do for prod. * permalink * embed * save * report * give award * reply [+][deleted] 1 month ago (2 children) [deleted] [-]jahu_len 2 points3 points4 points 1 month ago (1 child) Rough day, huh? * permalink * embed * save * report * give award * reply [-]Turbulent-Swimmer390 0 points1 point2 points 1 month ago (2 children) As a hobbyist (and beginner) I thought langchain was the go to tool for coders given it's popularity amongst the YouTube tutorials on this subject. I feel misled reading opinions of people who actually code for a living. Is there an actual library I can study and use for my own use cases? Huggingface's transformers maybe? * permalink * embed * save * report * give award * reply [-]AlgoTrade 3 points4 points5 points 1 month ago (0 children) It's all basic api requests, langchain is just a clunky library with some prebuilt stuff. Learn what's going on there, and if it works for your pet project, all good! But it's not likely going to be production ready, and anything you see in the langchain repo is probably better custom built for your own use. * permalink * embed * save * parent * report * give award * reply [-]stormelc 1 point2 points3 points 1 month ago (0 children) Langchain is great to learn what is going on. Look at their code and study it. It's a decent collection of utilities but not the end all be all that people seem to think it is. * permalink * embed * save * parent * report * give award * reply [-]g0rth 0 points1 point2 points 1 month ago (1 child) I feel you, but ultimately anything library that is built around a LLM will aways just be fancy string parsers. I wouldn't expect much from them either way. * permalink * embed * save * report * give award * reply [-]Alarmed-Individual-5 0 points1 point2 points 1 month ago (0 children) ... and what do you guys think about the JavaScript version? Is that better designed? * permalink * embed * save * report * give award * reply [-]stormelc 0 points1 point2 points 1 month ago (0 children) This seems like a beginner's project It absolutely is a beginner project that blew up. There has been so much movement in this space, and it's sufficiently new to a lot of people that people naturally gravitated towards a library with high number of stars on github. * permalink * embed * save * report * give award * reply [-]AmountFar 0 points1 point2 points 1 month ago (1 child) What is the alternative to langchain? * permalink * embed * save * report * give award * reply [-]SuperConductiveRabbi[S] -1 points0 points1 point 1 month ago (0 children) It depends on the specific functionality, but if you go one layer down in their code you can see the actual libraries doing the work. I pointed out SentenceTransformers, ChromaDB, and requests for what I was looking at. * permalink * embed * save * parent * report * give award * reply [-]Wishmaster04 0 points1 point2 points 1 month ago (0 children) My path with langchain was : - Ok, this seems widely used, must learn about it - Mmhhh, do I really need to use this ? Is this actually helping me or is it a weight ? I will only use chains and templates for my project, then we'll see. - * Sees a reddit post about it* I would say the LLM client wrapper is useful because it creates an abstraction with many LLMs * permalink * embed * save * report * give award * reply [-]nicognaw 0 points1 point2 points 15 days ago (0 children) I'm trying to build a production-level LLM-powered app, and LangChain makes me a lot of pain; the documents are inconsistent, it passes parameters so randomly but still checks types with pydantic, so some use cases fail and some do not, and the time I spent debugging custom tools and chains is even enough for me to implement one from scratch. If I just wanted a data science lab or an LLM toy, LangChain would be great, but for production-level systems, I don't think so. * permalink * embed * save * report * give award * reply [-]AsliReddington 0 points1 point2 points 6 hours ago (0 children) It's just abstraction to do stuff quickly, definitely better to use alternative approaches for basic action * permalink * embed * save * report * give award * reply [-]TotesMessenger 0 points1 point2 points 5 hours ago (0 children) I'm a bot, bleep, bloop. Someone has linked to this thread from another place on reddit: * [/r/hypeurls] Langchain Is Pointless ^If you follow any of the above links, please respect the rules of reddit and don't vote in the other threads. ^(Info ^/ ^Contact) * permalink * embed * save * report * give award * reply [-]Voxandr 0 points1 point2 points 5 hours ago (0 children) Haystack is much better , well oragnized langchain alternative. * permalink * embed * save * report * give award * reply [-]drivenkey 0 points1 point2 points 5 hours ago (0 children) What about lamaindex? (Or that suffer from same issues...) https://www.llamaindex.ai/ * permalink * embed * save * report * give award * reply [-]Bulky_Highlight_3352 0 points1 point2 points 4 hours ago (0 children) try deepset Haystack, it is a thought through and well designed library that comes with production level code * permalink * embed * save * report * give award * reply [-]demofunjohn 0 points1 point2 points 4 hours ago (0 children) I was beginning to feel this way after watching some videos of the founder. It's like a big marketing push with the hopes of filling the gaps along the way. But I couldn't find any value, seems like basic python is all you need here. * permalink * embed * save * report * give award * reply [-]resiros 0 points1 point2 points 2 hours ago (0 children) I believe the abstractions in Langchain are inherently flawed. The core problem resides in the composability of chains. While it offers a handy way to create prototypes, it becomes restricting when you desire to modify a specific element within the chain. The hierarchical design of chains in Langchain conceals the component you wish to alter and obscures the parts developers might want to adjust, making the process of experimenting and refining the pipeline difficult. The optimal abstraction for LLM apps, in my view, should resemble a DAG or a state machine. This alternative exposes the distinct stages in the pipeline rather than masking them in a hierarchy. Yes, adopting this new abstraction might lead to more code but it offers superior control. It's hardly surprising that many users start prototyping with Langchain, but then, when ready, they clone the prompts and construct their own systems. Fixing this fundamental issue would be very difficult. It would necessitate reworking the library from the ground up. * permalink * embed * save * report * give award * reply [-]sandys1 0 points1 point2 points 1 hour ago (0 children) I think that Generative AI applications is a config management problem. Think Prompts X Chains X LLMs. Your prompts wont work across everything and everything will break on model change. Coding this into ur classes is what everyone does. I think the better answer is to declaratively pull out the prompts X chains as jsonnet code. Call it trauma & learnings from the K8s/Borg world. We have formats that have evolved as a result of millions of lines of code wrangling clusters/terraform/etc - so we decided to build a SDK over it. that is what we did here - https://github.com/arakoodev/EdgeChains/ releases/tag/0.2.0 EdgeChains is basically Generative AI prompt engineering modeled as config management. * permalink * embed * save * report * give award * reply * about * blog * about * advertising * careers * help * site rules * Reddit help center * reddiquette * mod guidelines * contact us * apps & tools * Reddit for iPhone * Reddit for Android * mobile website * <3 * reddit premium * reddit coins Use of this site constitutes acceptance of our User Agreement and Privacy Policy. (c) 2023 reddit inc. All rights reserved. REDDIT and the ALIEN Logo are registered trademarks of reddit inc. [pixel] p Rendered by PID 19364 on reddit-service-r2-loggedout-769489885d-h4lxg at 2023-07-08 23:01:05.135615+00:00 running 96cf1b6 country code: US.