Giter VIP home page Giter VIP logo

assistantshub.ai's Introduction

Assistants Hub

The Open Source Assistants Management Portal

Vercel Build Status GitHub Last Commit GitHub Issues GitHub Pull Requests GitHub License


DemoTutorialsAssistants Hub


Welcome to Assistants Hub, where you can Build, Integrate, and Deploy AI Assistants in Minutes. This project leverages the power of Next.js, OpenAI, Google and other AI services to provide a streamlined platform for creating sophisticated AI assistants. Our mission is to democratize AI development, making it accessible for developers, hobbyists, and businesses to innovate and implement AI solutions effortlessly.


Landing

Why should you use Assistants Hub?

Assistants Hub is not another LLM user interface, it is a comprehensive platform that enables businesses and AI practitioners to build, integrate, and deploy AI assistants to their end users with ease. Here are some reasons why you should consider using Assistants Hub:

  • Rapid Build and Rollout: Quickly create and deploy your AI assistants with our intuitive setup and detailed documentation.
  • Comprehensive Platform: Utilize advanced analytics, conversation history tracking, and extensive customization options to tailor your assistant to your needs.
  • Extensive Collection of Models: Access a wide variety of AI models to power your assistants, ensuring the best fit for your specific use case.

Key Features

  • Extensive LLM and GPT models: Access the latest AI models from OpenAI, Google, Anthropic and Groq to power your AI assistants.
  • Streaming Responses: Enable real-time interactions with your AI assistant through streaming responses.
  • Analytics: Monitor and analyze your assistant's performance with detailed analytics and insights.
  • Conversation Log: Review and analyze past conversations to improve your assistant's responses.
  • Customizations: Tailor your assistant's appearance, behavior, and responses to suit your needs.
  • Easy Integration: Seamlessly integrate your assistant with popular platforms and services.
  • Document Management: Organize and manage your assistant's documents for quick reference and retrieval.
  • Function Integration: Extend your assistant's capabilities by integrating custom functions and services.

Explore our Guides to get started with Assistants Hub or check out our Demos to see our AI assistants in action.

Below is an AI assistant demo generated with Assistants Hub available at Math Whiz Kid

Math Whiz Kid

Supported Models

OpenAI Models

All models that support OpenAI's Assistants API are supported by Assistants Hub.

Model Name Provider Streaming
Responses
Documents Functions
GPT-4o OpenAI 🚧
GPT-4-Turbo OpenAI 🚧
GPT-4 OpenAI 🚧
GPT-3.5-Turbo OpenAI ✖️ ✖️
GPT-3.5-Turbo-16k OpenAI ✖️ ✖️
GPT-3.5-Turbo-0125 OpenAI ✖️ ✖️

Google Gemini Models

The gemini-1.5-pro-latest model is a large-scale language model developed by Google. It is designed to generate human-like text based on the input provided to it. The model is trained on a diverse range of text data to ensure that it can handle a wide variety of tasks and topics. Read More

Model Name Provider Streaming
Responses
Documents Functions
Gemini-1.5-Pro-latest Google ✖️ ✖️
Gemini-1.5-Flash-latest Google ✖️ ✖️

Anthropic Models

All models that support Anthropic API are supported by Assistants Hub.

Model Name Provider Streaming
Responses
Documents Functions
Claude 3 Opus Anthropic ✖️ ✖️
Claude 3 Sonnet Anthropic ✖️ ✖️
Claude 3 Haiku Anthropic ✖️ ✖️

Gorq Cloud

All models that support Gorq Cloud API are supported by Assistants Hub.

Model Name Provider Streaming
Responses
Documents Functions
Llama3-8b-8192 Groq ✖️ ✖️
Llama3-70b-8192 Groq ✖️ ✖️
Mixtral-8x7b-32768 Groq ✖️ ✖️
Gemma-7b-it-8192 Groq ✖️ ✖️

Getting Started

To get started with Assistants Hub, you'll need to have Node.js installed on your machine. Follow the steps below to set up your development environment.

git clone https://github.com/assistants-hub/assistantshub.ai
cd assistantshub.ai
pnpm install

Prerequisites

  • Node.js (LTS version recommended)
  • pnpm
  • PostgreSQL database

Installation

  1. Clone the repository

    git clone https://github.com/assistants-hub/assistantshub.ai
  2. Navigate to the project directory

    cd assistantshub.ai
  3. Install the dependencies

     pnpm install
  4. Configure your environment: Rename .env.template to .env and fill in the necessary settings.

  5. Configure Postgres Database

    • Install Postgres on your machine
    • Create a new database
    • Update the DATABASE_URL in the .env.local file with your database connection string
    • Install timescaledb extension in your database
  6. Start the development server

    pnpm dev

Visit http://localhost:3001 in your browser to see your AI assistant in action.

  1. Logging into your local instance.
    • By default the local instance is configured to use Credentials based authentication.
    • You can login using CREDENTIALS_APPROVED_USERNAME and CREDENTIALS_APPROVED_PASSWORD in your .env file.

Contributing

Your contributions can help make Assistants Hub even better. If you're interested in contributing, please read our CONTRIBUTING.md file to learn how you can get involved.

Support

Encountered a bug or need help? Open an issue in our GitHub repository, and we'll do our best to address it.

License

Assistants Hub is released under the MIT license, promoting open and collaborative development.

Disclaimers

Please review our DISCLAIMER.md to understand the limitations and legal disclaimers associated with using Assistants Hub.

References

Acknowledgements

We extend our gratitude to:

OpenAI, Anthropic, Groq and Google for their exceptional APIs that powers the intelligence of our assistants. The Next.js community, for providing the robust framework that makes this project possible.

Thank you for exploring Assistants Hub. We're eager to see the incredible AI assistants you'll build and deploy!

assistantshub.ai's People

Contributors

santthosh avatar dependabot[bot] avatar

Stargazers

 avatar Harish Vadaparty avatar SkalingClouds avatar Viet Nguyen avatar Glauber Funez avatar  avatar Marc-Olivier Bouchard avatar Mohammad Hamed avatar Elias avatar Cameron King avatar  avatar Tony O'Connell avatar  avatar Abraham Chaffin avatar Jayahari Adithya avatar

Watchers

 avatar

assistantshub.ai's Issues

Ability to configure Blob stores

Currently only Vercel Blob store is supported. There is desire and intent for us to support Azure, S3, Google Cloud Storage and other blob stores.

This is also required to help support containerization using docker.

Enable Customization Features for Assistants

Description

To enhance user experience and allow for greater personalization, we propose introducing customization options for the assistant interface. These enhancements aim to provide users with the ability to tailor the assistant's appearance and behavior to better align with their preferences and branding requirements.

Customization Options

The following customization features are proposed:

  1. Assistant Image: Allow users to choose a custom image for the assistant avatar, enhancing brand alignment and personalization.
  2. Size of the Floating Icon: Provide the ability to adjust the size of the assistant's floating icon, accommodating various screen sizes and user preferences.
  3. Open by Default: Offer an option to have the assistant interface open by default when a page loads, ensuring immediate visibility and access.
  4. Primary Color: Enable users to define a primary color for the assistant interface, allowing for consistency with brand color schemes.
  5. Secondary Color: Similar to the primary color, this option would allow for the customization of a secondary color, further enhancing brand integration.
  6. Initial Prompt Message: Allow users to set a custom initial prompt message that the assistant will display, facilitating a more personalized user interaction.
  7. Label on the Textfield: Provide the ability to customize the label displayed on the assistant's text input field, enhancing clarity and user guidance.

Objective

The goal of these enhancements is to provide a more immersive and brand-consistent experience for users interacting with the assistant. By offering these customization options, we can significantly improve user engagement and satisfaction.

Implementation Considerations

  • Ensure that customization options are easily accessible within the user settings or configuration panel.
  • Maintain performance and responsiveness of the assistant interface despite these customization changes.
  • Provide default values for all customization options to ensure a seamless experience for users who may not opt for customization.

Expected Impact

  • Increased user engagement and satisfaction due to a more personalized and brand-consistent assistant interface.
  • Enhanced appeal of the assistant feature to a broader range of users and businesses seeking brand alignment.

We look forward to discussing these proposed enhancements and moving forward with their implementation to improve the user experience.

Go full screen on Mobile

If the user is on mobile and taps on the assistant, go full screen so there is no clunky text field experience

Next.js bootstrap

Initial commit with npx create-next-app@latest
Modify to run with turbo

Implement Billing Enhancements and Stripe Integration for Assistant Management

Overview

This issue outlines the need for a comprehensive overhaul of our current billing system, aiming to introduce a more transparent and user-friendly billing experience. Key enhancements include the incorporation of a per-token pricing model within our database architecture, seamless integration of payment methods via Stripe during Assistant setup, and the introduction of a dedicated Pricing and Billing page for each Assistant.

Objectives

  • Model Table with Pricing Functionality: To provide clarity and transparency in pricing, introduce per-token pricing functionality within the Model table. This will allow users to understand the cost associated with their usage directly.

  • Tighter Model-Assistant Association: Ensure a robust linkage between each Model and its corresponding Assistant to streamline functionality and billing accuracy.

  • Simplification of Setup Process: Remove the Bring Your Own Key (BYOK) option during the Assistant setup to reduce complexity and potential user errors.

  • Stripe Integration for Payment Processing: During Assistant creation, incorporate Stripe to accept and manage payment methods securely and efficiently.

  • Dedicated Pricing and Billing Page: Each Assistant should have a tailored Pricing and Billing page, offering users a clear view of their current plan, usage, and billing history.

  • Functionality and Feature Management: Temporarily disable any functions or tools that are currently not operational to ensure a clean and user-friendly interface.

  • Token Usage Metering: Implement a metering system to track token usage, aiding in billing accuracy and providing valuable insights for users to manage their costs.

Implementation Steps

  1. Model Table Enhancement: Update the database schema to include pricing details for each token within the Model table. Ensure compatibility and easy retrieval of this information.

  2. Assistant Linkage: Develop backend functionality to tightly couple each Assistant with its corresponding Model, ensuring accurate tracking and billing.

  3. Setup Process Revision: Modify the Assistant setup workflow to remove the BYOK feature and integrate Stripe for payment processing.

  4. Pricing and Billing Interface: Design and implement a user-friendly Pricing and Billing page accessible from each Assistant's dashboard, displaying essential billing information and controls.

  5. Feature Management: Review the current platform features and tools, disabling any that are not yet ready for public use to maintain a streamlined user experience.

  6. Usage Tracking: Establish a robust token usage tracking system, ensuring it's accurately reflected in the user's billing and visible on the Pricing and Billing page.

Expected Outcomes

  • A more transparent, straightforward billing process that enhances user trust and satisfaction.
  • Improved operational efficiency in managing billing and payments.
  • Enhanced user experience with the introduction of clear pricing structures and easy payment processing.

Configurable Thread Persistence Duration

Overview

Introduce a feature allowing users to configure the persistence time span of threads. This enhancement will enable users to set the duration for which threads remain active or stored, based on their preferences or requirements, with options ranging from minutes to days.

Feature Description

Currently, our assistants maintains threads for a default duration of 24 hours, which may not align with the varied needs of our users. By providing the ability to adjust the persistence time span of threads, we can offer a more tailored and flexible user experience. This feature would be particularly useful in scenarios where the relevance of information within threads diminishes over time or needs to be retained for longer periods for audit or reference purposes.

User Stories

  • As a user, I want to set the thread persistence time to 30 minutes for rapid discussions that quickly become irrelevant.
  • As a moderator, I wish to configure certain threads to persist for several days or indefinitely for ongoing discussions or important announcements.
  • As an admin, I need the ability to set default persistence times for different categories of threads to better manage content and server resources.

Proposed Solution

  • Introduce settings in the user interface to configure the persistence time span of threads, with predefined options (e.g., 30 minutes, 1 hour, 24 hours, 7 days, Indefinitely).
  • Allow administrators to set default persistence durations for threads across the platform, with the option for users or moderators to adjust individual threads within those parameters.
  • Implement backend logic to automatically archive or delete threads based on their configured persistence settings.

Acceptance Criteria

  1. Administrators have the ability to define default persistence settings for all threads.
  2. Thread persistence must be scoped to the assistants

Implementation Considerations

  • Ensure that the user interface for configuring the persistence time span is intuitive and accessible within the thread creation or settings panel.

Impact

This feature will significantly enhance user and moderator control over content management and potentially improve the application's performance by ensuring that only relevant threads occupy server resources.

Problem with deploy and .env

Hello, can you give me an example of the .env that must be deployed and the step by step of the local deploy, so I can see if I can dockerize the project. Can anything else be used with OpenAI and what would the procedure be? @santthosh

Normalize stream formats and handle errors betters

Stream formats between OpenAI, Google and Groq are much different when sent to the client. There is a potential race condition in when the streamed message is saved and new messages are retrieved.

We need to normalize this and sometimes when results error out, we don't have a great way to handle this.

Containerize Next.js Application with PostgreSQL

Description

We need to containerize our Next.js application, which uses a PostgreSQL database, to improve deployment processes and environment consistency. The application is currently hosted on Vercel.

Requirements

  1. Dockerization:

    • Develop a Dockerfile for the Next.js application.
    • Use an official PostgreSQL image for the database.
    • Ensure containers can communicate effectively.
  2. Environment Configuration:

    • Set up necessary environment variables for development and deployment.
    • Manage secrets securely.
  3. Local Development:

    • Provide a docker-compose.yml to facilitate local development with Docker.
  4. Deployment:

    • Draft guidelines for deploying the containers to a cloud platform.
    • Suggest a simple CI/CD approach for building and deploying Docker images.
  5. Documentation:

    • Update the project documentation to include Docker setup and usage instructions.

Objective

  • Enable scalable and flexible deployments using Docker.
  • Simplify the setup process for new developers.

Please provide feedback or additional considerations for this initiative.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.