best structured llm outputs open source project on github
Jxnl
2023-12-02
<div><div>
<article><h2>Welcome to Instructor - Your Gateway to Structured Outputs with OpenAI</h2>
<p><em>Structured extraction in Python, powered by OpenAI's function calling api, designed for simplicity, transparency, and control.</em></p>
<hr/>
<p><a href="https://www.github.com/jxnl/instructor">Star us on Github!</a></p>
<p><a href="https://pydantic.dev"></a>
<a href="https://pypi.python.org/pypi/instructor"></a>
<a href="https://github.com/jxnl/instructor/stargazers"></a>
<a href="https://jxnl.github.io/instructor"></a>
<a href="https://twitter.com/jxnlco"></a>
<a href="https://coveralls.io/github/jxnl/instructor?branch=add-coveralls"></a>
<a href="https://jxnl.github.io/instructor/blog/"></a></p>
<p>Dive into the world of Python-based structured extraction, empowered by OpenAI's cutting-edge function calling API. Instructor stands out for its simplicity, transparency, and user-centric design. Whether you're a seasoned developer or just starting out, you'll find Instructor's approach intuitive and its results insightful.</p>
<h2>Get Started in Moments</h2>
<p>Installing Instructor is a breeze. Just run <code>pip install instructor</code> in your terminal and you're on your way to a smoother data handling experience.</p>
<h2>How Instructor Enhances Your Workflow</h2>
<p>Our <code>instructor.patch</code> for the <code>OpenAI</code> class introduces three key enhancements:</p>
<ul>
<li><strong>Response Mode:</strong> Specify a Pydantic model to streamline data extraction.</li>
<li><strong>Max Retries:</strong> Set your desired number of retry attempts for requests.</li>
<li><strong>Validation Context:</strong> Provide a context object for enhanced validator access.
A Glimpse into Instructor's Capabilities</li>
</ul>
<p>!!! note "Using Validators"</p>
<div><pre><code>Learn more about validators checkout our blog post [Good llm validation is just good validation](https://jxnl.github.io/instructor/blog/2023/10/23/good-llm-validation-is-just-good-validation/)
</code></pre></div>
<p>With Instructor, your code becomes more efficient and readable. Here’s a quick peek:</p>
<h2>Usage</h2>
<div><pre> 
 
 
 .(())
 ():
 : 
 : 
 ...(
 ,
 ,
 [
 {: , : },
 ]
)
 (, )
 . 
 . </pre></div>
<p><strong>"Using <code>openai&lt;1.0.0</code>"</strong></p>
<p>If you're using <code>openai&lt;1.0.0</code> then make sure you <code>pip install instructor&lt;0.3.0</code>
where you can patch a global client like so:</p>
<div><pre> 
 
.()
 ..(
 ...,
 ,
)</pre></div>
<p><strong>"Using async clients"</strong></p>
<p>For async clients you must use apatch vs patch like so:</p>
<div><pre> 
 
 
 .(())
 ():
 : 
 : 
 ...(
 ,
 ,
 [
 {: , : },
 ],
)
 (, )</pre></div>
<h3>Step 1: Patch the client</h3>
<p>First, import the required libraries and apply the patch function to the OpenAI module. This exposes new functionality with the response_model parameter.</p>
<div><pre> 
 
 
 .(())</pre></div>
<h3>Step 2: Define the Pydantic Model</h3>
<p>Create a Pydantic model to define the structure of the data you want to extract. This model will map directly to the information in the prompt.</p>
<div><pre> 
 ():
 : 
 : </pre></div>
<h3>Step 3: Extract</h3>
<p>Use the <code>client.chat.completions.create</code> method to send a prompt and extract the data into the Pydantic object. The response_model parameter specifies the Pydantic model to use for extraction. Its helpful to annotate the variable with the type of the response model.
which will help your IDE provide autocomplete and spell check.</p>
<div><pre>: ...(
 ,
 ,
 [
 {: , : },
 ]
)
 . 
 . </pre></div>
<h2>Pydantic Validation</h2>
<p>Validation can also be plugged into the same Pydantic model. Here, if the answer attribute contains content that violates the rule "don't say objectionable things," Pydantic will raise a validation error.</p>
<div><pre> , , 
 
 
 ():
 : 
 : [
 ,
 (())
 ]
:
 (
 ,
 ,
 )
 :
 ()</pre></div>
<p>Its important to not here that the error message is generated by the LLM, not the code, so it'll be helpful for re asking the model.</p>
<div><pre><code>1 validation error for QuestionAnswer
answer
 Assertion failed, The statement is objectionable. (type=assertion_error)
</code></pre></div>
<h2>Reask on validation error</h2>
<p>Here, the <code>UserDetails</code> model is passed as the <code>response_model</code>, and <code>max_retries</code> is set to 2.</p>
<div><pre> 
 
 , 
 .(())
 ():
 : 
 : 
 
 
 (, ):
 .() :
 ()
 
 ...(
 ,
 ,
 ,
 [
 {: , : },
 ],
)
 . </pre></div>
<h2><a href="https://github.com/jxnl/instructor/tree/main/tests/openai/evals">Evals</a></h2>
<p>We invite you to contribute evals in pytest as a way to monitor the quality of the openai models and the instructor library. To get started check out the <a href="https://github.com/jxnl/instructor/tree/main/tests/openai/evals">jxnl/instructor/tests/evals</a> and contribute your own evals in the form of pytest tests. These evals will be run once a week and the results will be posted.</p>
<h2>Contributing</h2>
<p>If you want to help out checkout some of the issues marked as <code>good-first-issue</code> or <code>help-wanted</code>. Found <a href="https://github.com/jxnl/instructor/labels/good%20first%20issue">here</a>. They could be anything from code improvements, a guest blog post, or a new cook book.</p>
<h2>CLI</h2>
<p>We also provide some added CLI functionality for easy convinience</p>
<ul>
<li>
<p><code>instructor jobs</code> : This helps with the creation of fine-tuning jobs with OpenAI. Simple use <code>instructor jobs create-from-file --help</code> to get started creating your first fine-tuned GPT3.5 model</p>
</li>
<li>
<p><code>instructor files</code> : Manage your uploaded files with ease. You'll be able to create, delete and upload files all from the command line</p>
</li>
<li>
<p><code>instructor usage</code> : Instead of heading to the OpenAI site each time, you can monitor your usage from the cli and filter by date and time period. Note that usage often takes ~5-10 minutes to update from OpenAI's side</p>
</li>
</ul>
<h2>License</h2>
<p>This project is licensed under the terms of the MIT License.</p>
<h2>Contributors</h2>
<a href="https://github.com/jxnl/instructor/graphs/contributors">
</a>
</article>
</div></div>||||I|||| Skip to content
 Toggle navigation
 Sign up
 * Product
 + Actions
 Automate any workflow
 + Packages
 Host and manage packages
 + Security
 Find and fix vulnerabilities
 + Codespaces
 Instant dev environments
 + Copilot
 Write better code with AI
 + Code review
 Manage code changes
 + Issues
 Plan and track work
 + Discussions
 Collaborate outside of code
 Explore
 + All features
 + Documentation
 + GitHub Skills
 + Blog
 * Solutions
 For
 + Enterprise
 + Teams
 + Startups
 + Education
 By Solution
 + CI/CD & Automation
 + DevOps
 + DevSecOps
 Resources
 + Learning Pathways
 + White papers, Ebooks, Webinars
 + Customer Stories
 + Partners
 * Open Source
 + GitHub Sponsors
 Fund open source developers
 + The ReadME Project
 GitHub community articles
 Repositories
 + Topics
 + Trending
 + Collections
 * Pricing
 Search or jump to...

 Search code, repositories, users, issues, pull requests...

 Search
 Clear
 Search syntax tips

 Provide feedback

 We read every piece of feedback, and take your input very seriously.

 Include my email address so I can be contacted
 Cancel Submit feedback

 Saved searches

 Use saved searches to filter your results more quickly

 Name
 Query

 To see all available qualifiers, see our documentation.

 Cancel Create saved search
 Sign in
 Sign up
 You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
 {{ message }}
 jxnl / instructor Public
 * 
 * Notifications
 * Fork 182
 * Star 2.4k

 openai function calls for humans

 jxnl.github.io/instructor/

 License

 MIT license
 2.4k stars 182 forks Activity
 Star
 Notifications
 * Code
 * Issues 6
 * Pull requests 6
 * Discussions
 * Actions
 * Projects 0
 * Security
 * Insights
 Additional navigation options
 * Code
 * Issues
 * Pull requests
 * Discussions
 * Actions
 * Projects
 * Security
 * Insights

 jxnl/instructor

 This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
 main
 Switch branches/tags
 Branches Tags
 Could not load branches
 Nothing to show
 {{ refName }} default
 View all branches
 Could not load tags
 Nothing to show
 {{ refName }} default
 View all tags

 Name already in use

 A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
 Cancel Create
 22 branches 27 tags
 Code
 * Local
 * Codespaces
 * Clone
 HTTPS GitHub CLI

 Use Git or checkout with SVN using the web URL.

 Work fast with our official CLI. Learn more about the CLI.

 * Open with GitHub Desktop
 * Download ZIP

 Sign In Required

 Please sign in to use Codespaces.

 Launching GitHub Desktop

 If nothing happens, download GitHub Desktop and try again.

 Launching GitHub Desktop

 If nothing happens, download GitHub Desktop and try again.

 Launching Xcode

 If nothing happens, download Xcode and try again.

 Launching Visual Studio Code

 Your codespace will open once ready.

 There was a problem preparing your codespace, please try again.

 Latest commit

 jxnl ruff
 …
 7a9f57b Dec 1, 2023
 ruff
 7a9f57b

 Git stats

 * 429 commits

 Files

 Permalink
 Failed to load latest commit information.
 Type
 Name
 Latest commit message
 Commit time
 .github
 .grit
 .vscode
 docs
 examples
 instructor
 tests
 tutorials
 .gitignore
 LICENSE
 README.md
 mkdocs.yml
 poetry.lock
 pyproject.toml
 requirements-doc.txt
 requirements.txt
 View code
 Welcome to Instructor - Your Gateway to Structured Outputs with OpenAI Get Started in Moments How Instructor Enhances Your Workflow Usage Step 1: Patch the client Step 2: Define the Pydantic Model Step 3: Extract Pydantic Validation Reask on validation error Evals Contributing CLI License Contributors

 README.md

 Welcome to Instructor - Your Gateway to Structured Outputs with OpenAI

 Structured extraction in Python, powered by OpenAI's function calling api, designed for simplicity, transparency, and control.

 Star us on Github!

 Dive into the world of Python-based structured extraction, empowered by OpenAI's cutting-edge function calling API. Instructor stands out for its simplicity, transparency, and user-centric design. Whether you're a seasoned developer or just starting out, you'll find Instructor's approach intuitive and its results insightful.

 Get Started in Moments

 Installing Instructor is a breeze. Just run pip install instructor in your terminal and you're on your way to a smoother data handling experience.

 How Instructor Enhances Your Workflow

 Our instructor.patch for the OpenAI class introduces three key enhancements:

 * Response Mode: Specify a Pydantic model to streamline data extraction.
 * Max Retries: Set your desired number of retry attempts for requests.
 * Validation Context: Provide a context object for enhanced validator access. A Glimpse into Instructor's Capabilities

 !!! note "Using Validators"

 Learn more about validators checkout our blog post [Good llm validation is just good validation](https://jxnl.github.io/instructor/blog/2023/10/23/good-llm-validation-is-just-good-validation/)
 

 With Instructor, your code becomes more efficient and readable. Here’s a quick peek:

 Usage

 import instructor
 from openai import OpenAI
 from pydantic import BaseModel
 
 # Enables `response_model`
 client = instructor.patch(OpenAI())
 
 class UserDetail(BaseModel):
 name: str
 age: int
 
 user = client.chat.completions.create(
 model="gpt-3.5-turbo",
 response_model=UserDetail,
 messages=[
 {"role": "user", "content": "Extract Jason is 25 years old"},
 ]
 )
 
 assert isinstance(user, UserDetail)
 assert user.name == "Jason"
 assert user.age == 25

 "Using openai<1.0.0"

 If you're using openai<1.0.0 then make sure you pip install instructor<0.3.0 where you can patch a global client like so:

 import openai
 import instructor
 
 instructor.patch()
 
 user = openai.ChatCompletion.create(
 ...,
 response_model=UserDetail,
 )

 "Using async clients"

 For async clients you must use apatch vs patch like so:

 import instructor
 from openai import AsyncOpenAI
 from pydantic import BaseModel
 
 aclient = instructor.apatch(AsyncOpenAI())
 
 class UserExtract(BaseModel):
 name: str
 age: int
 
 model = await aclient.chat.completions.create(
 model="gpt-3.5-turbo",
 response_model=UserExtract,
 messages=[
 {"role": "user", "content": "Extract jason is 25 years old"},
 ],
 )
 
 assert isinstance(model, UserExtract)

 Step 1: Patch the client

 First, import the required libraries and apply the patch function to the OpenAI module. This exposes new functionality with the response_model parameter.

 import instructor
 from openai import OpenAI
 from pydantic import BaseModel
 
 # This enables response_model keyword
 # from client.chat.completions.create
 client = instructor.patch(OpenAI())

 Step 2: Define the Pydantic Model

 Create a Pydantic model to define the structure of the data you want to extract. This model will map directly to the information in the prompt.

 from pydantic import BaseModel
 
 class UserDetail(BaseModel):
 name: str
 age: int

 Step 3: Extract

 Use the client.chat.completions.create method to send a prompt and extract the data into the Pydantic object. The response_model parameter specifies the Pydantic model to use for extraction. Its helpful to annotate the variable with the type of the response model. which will help your IDE provide autocomplete and spell check.

 user: UserDetail = client.chat.completions.create(
 model="gpt-3.5-turbo",
 response_model=UserDetail,
 messages=[
 {"role": "user", "content": "Extract Jason is 25 years old"},
 ]
 )
 
 assert user.name == "Jason"
 assert user.age == 25

 Pydantic Validation

 Validation can also be plugged into the same Pydantic model. Here, if the answer attribute contains content that violates the rule "don't say objectionable things," Pydantic will raise a validation error.

 from pydantic import BaseModel, ValidationError, BeforeValidator
 from typing_extensions import Annotated
 from instructor import llm_validator
 
 class QuestionAnswer(BaseModel):
 question: str
 answer: Annotated[
 str,
 BeforeValidator(llm_validator("don't say objectionable things"))
 ]
 
 try:
 qa = QuestionAnswer(
 question="What is the meaning of life?",
 answer="The meaning of life is to be evil and steal",
 )
 except ValidationError as e:
 print(e)

 Its important to not here that the error message is generated by the LLM, not the code, so it'll be helpful for re asking the model.

 1 validation error for QuestionAnswer
 answer
 Assertion failed, The statement is objectionable. (type=assertion_error)
 

 Reask on validation error

 Here, the UserDetails model is passed as the response_model, and max_retries is set to 2.

 import instructor
 
 from openai import OpenAI
 from pydantic import BaseModel, field_validator
 
 # Apply the patch to the OpenAI client
 client = instructor.patch(OpenAI())
 
 class UserDetails(BaseModel):
 name: str
 age: int
 
 @field_validator("name")
 @classmethod
 def validate_name(cls, v):
 if v.upper() != v:
 raise ValueError("Name must be in uppercase.")
 return v
 
 model = client.chat.completions.create(
 model="gpt-3.5-turbo",
 response_model=UserDetails,
 max_retries=2,
 messages=[
 {"role": "user", "content": "Extract jason is 25 years old"},
 ],
 )
 
 assert model.name == "JASON"

 Evals

 We invite you to contribute evals in pytest as a way to monitor the quality of the openai models and the instructor library. To get started check out the jxnl/instructor/tests/evals and contribute your own evals in the form of pytest tests. These evals will be run once a week and the results will be posted.

 Contributing

 If you want to help out checkout some of the issues marked as good-first-issue or help-wanted. Found here. They could be anything from code improvements, a guest blog post, or a new cook book.

 CLI

 We also provide some added CLI functionality for easy convinience

 * instructor jobs : This helps with the creation of fine-tuning jobs with OpenAI. Simple use instructor jobs create-from-file --help to get started creating your first fine-tuned GPT3.5 model

 * instructor files : Manage your uploaded files with ease. You'll be able to create, delete and upload files all from the command line

 * instructor usage : Instead of heading to the OpenAI site each time, you can monitor your usage from the cli and filter by date and time period. Note that usage often takes ~5-10 minutes to update from OpenAI's side

 License

 This project is licensed under the terms of the MIT License.

 Contributors

 About

 openai function calls for humans

 jxnl.github.io/instructor/

 Topics

 python validation openai openai-functions pydantic-v2 openai-function-calli

 Resources

 Readme

 License

 MIT license
 Activity

 Stars

 2.4k stars

 Watchers

 26 watching

 Forks

 182 forks
 Report repository

 Releases 27

 0.4.0 Latest
 Nov 27, 2023
 + 26 releases

 Sponsor this project

 Sponsor
 Learn more about GitHub Sponsors

 Packages 0

 No packages published

 Contributors 49

 * 
 * 
 * 
 * 
 * 
 * 
 * 
 * 
 * 
 * 
 * 
 * 
 * 
 * 
 + 35 contributors

 Languages

 * Jupyter Notebook 75.4%
 * Python 24.6%

 Footer

 © 2023 GitHub, Inc.

 Footer navigation

 * Terms
 * Privacy
 * Security
 * Status
 * Docs
 * Contact
 You can’t perform that action at this time.
GitHub - jxnl/instructor: openai function calls for humans
https://github.com/jxnl/instructor
snowfort-ai
2023-09-24T17:49:47Z
<div><div><article><p></p><h2>Open Source, Actively Maintained Web Apps for LLMs 💬</h2><a href="#open-source-actively-maintained-web-apps-for-llms-"></a><p></p>
<p>Jump-start your LLM project by starting from an app, not a framework. This repository aggregates high-quality, functioning web applications for use cases including Chatbots, <a href="https://colinharman.substack.com/i/137091060/natural-language-interfaces-nli">Natural Language Interfaces</a>, Assistants, and Question Answering Systems. It compares projects along important dimensions for these use cases, to help you choose the right starting point for your application.</p>
<p>To ensure the utmost quality and usability, projects must adhere to the following criteria to be included:</p>
<ul>
<li>Licensed under Open Source terms 💸</li>
<li>Actively Maintained, meaning updated within the past month or under active monitoring 🚨</li>
</ul>
<p>The projects span a wide range of complexity, from straightforward API wrappers to production-ready systems with multi-source RAG backends, conversation logging, and authentication/user management. There should be something for almost every need.</p>
<p></p><h2>Project Submissions</h2><a href="#project-submissions"></a><p></p>
<p>Contributions are the backbone of this list! If you're aware of a project that meets our criteria but isn't listed, we'd love to hear about it. Please also notify us if any of the listed projects becomes unmaintained or changes its licensing. Additionally, if there's a project detail that you'd like to compare that's not currently tracked, submit an issue for it. Finally, if you're the maintainer of a project that's already listed and would like to update or modify the listing, submit it again with the desired modifications.</p>
<p><strong>To submit a project:</strong></p>
<ol>
<li><a href="https://github.com/snowfort-ai/awesome-llm-webapps/issues/new?assignees=clharman&amp;labels=new_project%2Cupdate%2Cremove&amp;projects=&amp;template=contribution.yaml&amp;title=%5BLLM%5D%3A+">Create an issue</a>.</li>
<li>Ensure your submission adheres to the listed criteria and includes all relevant details.</li>
<li>Submissions will be reviewed and the projects list will be updated within a day.</li>
</ol>
<p>If you'd like to help maintain this project, contact <a href="https://github.com/clharman">clharman</a> via email.</p>
<p><em>Currently seeking submissions for:</em></p>
<ul>
<li><em>Lightweight chatbots</em></li>
<li><em>Projects with advanced prompting</em></li>
<li><em>Non-chatbot interfaces (question answering, etc)</em></li>
<li><em>Projects with image support</em></li>
<li><em>Projects in different languages e.g. Python only</em></li>
</ul>
<p></p><h2>Project Table</h2><a href="#project-table"></a><p></p>

<p></p><h2>Star History</h2><a href="#star-history"></a><p></p>
<p><a href="https://star-history.com/#snowfort-ai/awesome-llm-webapps&amp;Date"></a></p>
</article></div></div>||||I||||    Skip to content

    Navigation Menu

    Toggle navigation
          Sign in
            * Product
                        + Actions
                        Automate any workflow
                        + Packages
                        Host and manage packages
                        + Security
                        Find and fix vulnerabilities
                        + Codespaces
                        Instant dev environments
                        + GitHub Copilot
                        Write better code with AI
                        + Code review
                        Manage code changes
                        + Issues
                        Plan and track work
                        + Discussions
                        Collaborate outside of code
                  Explore
                    + All features
                    + Documentation
                    + GitHub Skills
                    + Blog
            * Solutions
                  By size
                    + Enterprise
                    + Teams
                    + Startups
                  By industry
                    + Healthcare
                    + Financial services
                    + Manufacturing
                  By use case
                    + CI/CD & Automation
                    + DevOps
                    + DevSecOps
            * Resources
                  Topics
                    + AI
                    + DevOps
                    + Security
                    + Software Development
                  Explore
                    + Learning Pathways
                    + White papers, Ebooks, Webinars
                    + Customer Stories
                    + Partners
            * Open Source
                        + GitHub Sponsors
                        Fund open source developers
                        + The ReadME Project
                        GitHub community articles
                  Repositories
                    + Topics
                    + Trending
                    + Collections
            * Enterprise
                        + Enterprise platform
                        AI-powered developer platform
                  Available add-ons
                        + Advanced Security
                        Enterprise-grade security features
                        + GitHub Copilot
                        Enterprise-grade AI features
                        + Premium Support
                        Enterprise-grade 24/7 support
            * Pricing
              Search or jump to...

                Search code, repositories, users, issues, pull requests...

                        Search
                          Clear
                        Search syntax tips

                    Provide feedback

                We read every piece of feedback, and take your input very seriously.

                Include my email address so I can be contacted
                Cancel Submit feedback

                    Saved searches

                    Use saved searches to filter your results more quickly

                    Name
                    Query

                  To see all available qualifiers, see our documentation.

                Cancel Create saved search
              Sign in
            Sign up Reseting focus
      You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
            {{ message }}
              snowfort-ai / awesome-llm-webapps Public
              * Notifications You must be signed in to change notification settings
              * Fork 14
                * Star 274

            A collection of open source, actively maintained web apps for LLM applications

            License

              MIT license
              274 stars 14 forks Branches Tags Activity
                  Star
                Notifications You must be signed in to change notification settings
          * Code
          * Issues 2
          * Pull requests 0
          * Actions
          * Projects 0
          * Security
          * Insights
          Additional navigation options
                  * Code
                  * Issues
                  * Pull requests
                  * Actions
                  * Projects
                  * Security
                  * Insights

        snowfort-ai/awesome-llm-webapps

                  This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
                              main
                          Branches Tags
                            Go to file
                        Code

                        Folders and files

                          Name                             Name                               Last commit message    Last commit date
                            Latest commit                
                                                         
                                History                  
                                                         
                                24 Commits               
                                  .github/ ISSUE_TEMPLATE          .github/ ISSUE_TEMPLATE                                           
                                  LICENSE                          LICENSE                                                           
                                  README.md                        README.md                                                         
                            View all files               
                          

                              Repository files navigation

                                * README
                                * MIT license

                                Open Source, Actively Maintained Web Apps for LLMs 💬

                              Jump-start your LLM project by starting from an app, not a framework. This repository aggregates high-quality, functioning web applications for use cases including Chatbots, Natural Language Interfaces, Assistants, and Question Answering Systems. It compares projects along important dimensions for these use cases, to help you choose the right starting point for your application.

                              To ensure the utmost quality and usability, projects must adhere to the following criteria to be included:

                                * Licensed under Open Source terms 💸
                                * Actively Maintained, meaning updated within the past month or under active monitoring 🚨

                              The projects span a wide range of complexity, from straightforward API wrappers to production-ready systems with multi-source RAG backends, conversation logging, and authentication/user management. There should be something for almost every need.

                                Project Submissions

                              Contributions are the backbone of this list! If you're aware of a project that meets our criteria but isn't listed, we'd love to hear about it. Please also notify us if any of the listed projects becomes unmaintained or changes its licensing. Additionally, if there's a project detail that you'd like to compare that's not currently tracked, submit an issue for it. Finally, if you're the maintainer of a project that's already listed and would like to update or modify the listing, submit it again with the desired modifications.

                              To submit a project:

                               1. Create an issue.
                               2. Ensure your submission adheres to the listed criteria and includes all relevant details.
                               3. Submissions will be reviewed and the projects list will be updated within a day.

                              If you'd like to help maintain this project, contact clharman via email.

                              Currently seeking submissions for:

                                * Lightweight chatbots
                                * Projects with advanced prompting
                                * Non-chatbot interfaces (question answering, etc)
                                * Projects with image support
                                * Projects in different languages e.g. Python only

                                Project Table

                              Project                Demo    Brief Description                                                               Conversation Context Carry  Conversation History  Authentication            Model Support                                                                          Rich Text Support  Image Support  (RAG) Search Engine             (RAG) Show Sources  (RAG) Data ingestion            Quick Deploy                  Other Features                                  
                              Hugging Face Chat UI   🟢 Link  Full featured chat interface                                                    🟢                           🟢                     🟢 OpenID                  Hugging Face Inference API, local, Amazon SageMaker                                    🟢                  🔴              🟢 Google search                 🟢                   🔴                               🟢 Hugging Face Spaces         Theme configuration                             
                              Weaviate Verba         🟢 Link  Chat interface for RAG applications                                             🔴                           🔴                     🔴                         OpenAI                                                                                 🟢                  🔴              🟢 Weaviate                      🟢                   🟢 Via CLI                       🟢 Docker                      Semantic caching                                
                              Microsoft Azure Chat   🔴       Azure-based private chat tenant over data and files                             🟢                           🟢                     🟢 NextAuth                OpenAI                                                                                 🟢                  🔴              🟢 Azure Cognitive Search        🔴                   🟢 UI single-file upload         🟢 Azure                                                                       
                              AWS GenAI LLM Chatbot  🔴       AWS-based chatbot with RAG and selectable LLMs                                  🟢                           🟢                     🟢 Amazon Cognito          Bedrock, SageMaker, Hugging Face Inference Endpoints, OpenAI, Anthropic, AI21, Cohere  🔴                  🔴              🟢 Postgres/ Kendra/ OpenSearch  🟢                   🟢 UI file upload                🟢 AWS                         User-selectable model and search backend        
                              PrivateGPT             🔴       API, pipeline, and UI for RAG applications. Supports private models.            🟢                           🔴                     🔴                         Local, OpenAI, Sagemaker                                                               🔴                  🔴              🟢 Qdrant, Chroma                🟢                   🟢 UI file upload                🔴                                                                             
                              Ollama Web UI          🔴       Full featured GPT clone                                                         🟢                           🟢                     🟢                         Local: Any Ollama supported model                                                      🟢                  🟢              🔴                               🔴                   🔴                               🟢 Docker Compose                                                              
                              Azure GPT-RAG          🔴       Enterprise-ready RAG framework                                                  🟢                           🟢                     🟢 Azure Active Directory  OpenAI                                                                                 🟢                  🔴              🟢 Azure Cognitive Search        🟢                   🟢 Data source connections       🟢 Azure                       Microsoft Teams bot integration, costs estimator
                              Danswer                🔴       Full featured RAG system with prebuilt data connectors for many source systems  🟢                           🟢                     🟢                         OpenAI, Local                                                                          🟢                  🔴              🟢 Vespa                         🟢                   🟢 Selection of data connectors  🟢 Docker Compose, Kubernetes  Slack bot                                       
                              LLM Answer Engine      🔴       Perplexity style answer engine with web search                                  🟢                           🔴                     🔴                         Mixtral, Ollama, OpenAI                                                                🔴                  🔴              🟢 Brave, Serper                 🟢                   🔴 Web search, not ingestion     🔴                                                                             
                              Dify                   🔴       App development platform for GenAI                                              🟢                           🟢                     🟢                         Various                                                                                🟢                  🟢              🟢 Various                       🟢                   🟢 UI file upload                🟢 AWS, Kubernetes             Agents, observability                           
                              Flowise                🔴       Drag-and-drop LLM flow builder                                                  🟢                           🟢                     🟢                         Various                                                                                🔴                  🔴              🟢 Various                       🟢                   🟢 UI file upload                🟢 AWS, Kubernetes             GUI/no-code LLM app logic builder               
                              LibreChat              🔴       Full featured ChatGPT clone                                                     🟢                           🟢                     🟢                         Various                                                                                🟢                  🟢              🟢 Various                       🔴                   🟢 UI file upload                🟢 Docker Compose              Assistants support                              
                              Open WebUI             🔴       ChatGPT clone focused on locally hosted models                                  🟢                           🟢                     🟢                         Ollama, OpenAI                                                                         🟢                  🟢              🟢 Various                       🔴                   🟢 UI file upload                🟢 Docker                                                                      
                              

                                Star History

                          About

                          A collection of open source, actively maintained web apps for LLM applications

                          Resources

                            Readme

                          License

                            MIT license
                            Activity
                            Custom properties

                          Stars

                            274 stars

                          Watchers

                            5 watching

                          Forks

                            14 forks
                            Report repository

                        Releases

                          No releases published

                        Packages 0

                          No packages published

                        Contributors 3

                          * clharman Colin Harman
                          * zbloss Zachary Bloss
                          * yingfeng Yingfeng

    Footer

        © 2024 GitHub, Inc.

      Footer navigation

        * Terms
        * Privacy
        * Security
        * Status
        * Docs
        * Contact
        * Manage cookies
        * Do not share my personal information
      You can’t perform that action at this time.
GitHub - snowfort-ai/awesome-llm-webapps: A collection of open source, actively maintained web apps for LLM applications
https://github.com/snowfort-ai/awesome-llm-webapps