teilomillet / gollm

Unified Go interface for Language Model (LLM) providers. Simplifies LLM integration with flexible prompt management and common task functions.
https://docs.gollm.co
Apache License 2.0
222 stars 14 forks source link

Is there anything I can do? #3

Open jh2310 opened 1 month ago

teilomillet commented 1 month ago

Hi jh2310! Thank you for your interest in contributing to gollm.

There are indeed several ways you can contribute and immerse yourself in the project:

  1. Explore and Build: The best way to understand gollm is to use it. Try building some projects or tools using gollm.

  2. Create Examples: As you build with gollm, consider creating and sharing example projects. Well-commented, practical examples are incredibly valuable for new users and can be added to our documentation or example repository.

  3. Documentation: If you notice any areas where our documentation could be clearer or more comprehensive, contributions to improve it are always welcome. This could range from simple clarifications to entire new sections or tutorials.

  4. New LLM Providers: If you're familiar with other LLM providers not currently supported by gollm, adding support for them would be a great contribution. This aligns well with our philosophy of adding what's necessary.

  5. Testing and Bug Reporting: As you use gollm, if you encounter any issues or unexpected behaviors, reporting these (with clear steps to reproduce) is extremely helpful.

  6. Feature Ideas: If you have ideas for new features that align with our philosophy of pragmatic minimalism, we'd love to hear them. Remember, we focus on building what's necessary rather than speculative features.

To get started, check out the CONTRIBUTING.md file for guidelines, and the README.md for an overview of our philosophy.

Feel free to ask any questions as you explore these options. We're excited to see what you'll bring to the project!

Thank you and have fun ! (:

jh2310 commented 4 weeks ago

gollm What is the essential difference between ollam and LangChain, and what are the advantages of existing projects? I think we need to find some differentiation,Otherwise, we're just copying functions that others already have.

teilomillet commented 4 weeks ago

You're absolutely right that it's crucial to have a clear differentiation and purpose. Let me explain how I've positioned gollm:

LangChain is built as a tool to build chatbots, while gollm is built as a tool for prompt engineering, focusing solely on the interaction with the LLM output (the response to a prompt).

You can see LangChain as a Swiss Army knife that can handle chat completion, but also RAG building, etc. You can basically do almost anything with a minimum for each tool. To me, LangChain's goal is to make it do a lot of things.

gollm, on the other hand, is like a commando knife that can handle prompt optimization, easy comparison of multiple LLM outputs, and mix of agents. You can get structured output with validation (even for open source models). The goal is to make that knife cut almost anything - the sharper, the better.

My Experience and Encouragement

I want to be clear: LangChain is an excellent tool, and I encourage you to use it. I used LangChain extensively for over a year, and it's incredibly powerful and versatile. However, my frustrations with certain aspects of it led me to build gollm as a specialized tool to address my specific needs.

Development Approach

My approach to developing gollm is strictly needs-based and organic. We don't add features simply because they exist in other packages like LangChain. Instead, we add functionality when there's a genuine need for it in our workflow or when community members identify a gap that gollm can uniquely fill. For example:

This approach ensures that every feature in gollm serves a real, practical purpose and aligns with our focus on prompt engineering and LLM output handling.

If you want to help gollm grow and don't know where to start:

Your real-world experiences and needs are what will drive gollm's evolution.

Our Goal

I'm not aiming to replicate everything that LangChain or other libraries do. Instead, I'm building a highly specialized tool that excels at prompt engineering and LLM output handling. To use the knife analogy: I'm crafting an exceptionally sharp blade for cutting, not trying to add screwdrivers or scissors to our toolkit.

But remember, we are building a good knife, not a screwdriver or scissors or anything else.

jh2310 commented 4 weeks ago

I understand your ideas and goals, so where should we start now, or what are the high-priority needs currently? I look forward to this project bringing great convenience to all developers and having stars like ollam and LangChain!

teilomillet commented 4 weeks ago

Build with gollm - this is our highest priority!

Share your work:

If you can create something that will help newcomers, that would be fantastic. Consider a beginner-friendly project or tutorial that showcases gollm's key features. As you work, you'll likely come up with feature ideas or find bugs to report.