Ask RipeSeed was originally developed to help potential customers see if our team (at RipeSeed) has the required capabilities to help them with their projects. Any customer can ask about what they are looking for, and the AI assistant will respond back with relevant portfolios (if any) to showcase our capabilities to deliver that project.
Ask RipeSeed consists of two main sections:
- Ask RipeSeed: Ask any questions related to RipeSeed, drawing from our knowledge base for accurate and specific answers.
- Ask Anything: Upload your OpenAI API key (which will be stored locally on browser) to ask general questions. This section also allows you to upload and attach your own documents, enabling the chatbot to answer based on the content of the provided documents.
- 🌗 Dark/Light Mode Support
- 📝 Markdown support
- 💬 Chat history
- 📚 Attach custom knowledgebase
- 📅 Function calling support to book meetings
Try the deployed application on the link here. "Ask RipeSeed" tab is free to use but make sure to add your openai key (stored locally in the browser) to explore "Ask Anything" section.
Ask RipeSeed utilizes a modern and efficient tech stack to deliver a robust user experience. Below is an overview of the core libraries and tools used in the project:
Library | Category | Version | Description |
---|---|---|---|
Next.js | Web Framework | v14.2.3 | A powerful React framework for building scalable web applications. |
TypeScript | Language | v5 | Provides static type checking to improve code quality and maintainability. |
Tailwind CSS | Styling Framework | v3.4.1 | A utility-first CSS framework for rapidly building custom designs. |
Ttanstack/react-query | Data Fetching & Caching | v5.40.0 | A robust data-fetching and state management library for React applications. |
Langchain | LLM Toolkit | v0.2.6 | Toolkit for building applications using large language models like OpenAI's GPT. |
OpenAI | LLM Platform | v4.47.1 | Provides natural language processing and AI-driven responses for the chatbot. |
Pinecone | Vector Database | v2.2.1 | A scalable vector database for storing and querying high-dimensional data like embeddings. |
Framer Motion | Animation Library | v11.2.6 | A library for creating smooth animations and transitions in React applications. |
Mongoose | MongoDB Object Modeling | v8.4.1 | An ODM (Object Data Modeling) library for MongoDB and Node.js. |
Dexie | IndexedDB Wrapper | v4.0.7 | A minimalistic wrapper for IndexedDB to handle local storage effectively. |
PDF-parse | Document Parsing | v1.1.1 | Parses and processes PDF documents to extract content. |
Radix-ui | UI Components | v1.0.x | Provides a set of accessible and composable UI components for React. |
Valtio | State Management | v1.13.2 | A simple and efficient state management library for React. |
react-syntax-highlighter | Syntax Highlighting | v15.5.0 | Provides syntax highlighting for code snippets and markdown content. |
rehype-highlight | Markdown Parser | v7.0.0 | A plugin for Rehype to highlight code blocks in markdown. |
rehype-katex | Math Rendering | v7.0.0 | A plugin for Rehype to render math expressions using KaTeX. |
@gomomento/sdk | Caching | v1.93.0 | Provides a fast and scalable caching solution using Momento. |
lodash | Utility Library | v4.17.21 | A modern JavaScript utility library delivering modularity, performance, and extras. |
eslint | Linting | v8 | A pluggable linting utility for JavaScript and TypeScript. |
prettier | Code Formatter | v3.3.3 | An opinionated code formatter that supports many languages. |
Additional dependencies include several Radix UI components, libraries for state management, syntax highlighting, and markdown rendering to enhance the functionality and user interface of the chatbot.
To customize the chatbot's responses with your own knowledge base, follow these steps to create and upload document chunks:
- Prepare Your Documents: We have provided a template and an example document to start with and give agencies an idea on how should they create their knowledgebase. Use that or create your own document and place that in PDF format in the "Documents" folder located in the same directory as the chunking script.
- Run the Chunking Script: Use our script located here. This script is an
.ipynb
file that can be run locally using Jupyter Notebook or online via Google Colab. - Configure the Script: In the
upload_documents_service
function, set up the following variables:api_key
: Your Pinecone API key.pinecone.Index()
: Your Pinecone index name.openai_api_key
: Your OpenAI API key.id
: A hardcoded identifier in the metadata of vectors for distinguishing your documents in the vector database.
- Run the Script: Execute all the cells in sequence. This will vectorize your documents and store them in Pinecone with the specified index and metadata.
To run Ask RipeSeed locally, follow these steps:
-
Clone the Repository:
git clone /~https://github.com/RipeSeed/ask-ripeseed cd ask-ripeseed
-
Set Up Environment Variables: Add the following environment variables to your
.env
file:MOMENTO_API_KEY
: Your Momento API key for caching (free).MONGO_CONNECTION_STRING
: Your MongoDB connection string.NEXT_PUBLIC_GA_ID
: Google Analytics ID.OPENAI_KEY
: Your OpenAI API key.PINECONE_API_KEY
: Your Pinecone API key.PINECONE_INDEX
: Your Pinecone index name.RIPESEED_DOC_INDEX_ID
: The hardcoded ID for your indexed document in Pinecone.RIPESEED_OPENAI_API_KEY
: OpenAI key for querying the knowledge base.NEXT_PUBLIC_CALENDLY
: Your calendly link.
-
Install Dependencies:
pnpm install
-
Run the Application Locally:
pnpm run dev
We here at RipeSeed have setup this open-source repository so that developers interested in making AI tools like this can have a starting point. They can clone the repo and get it up and running and with only a few tweaks they can set up their own AI assistants without having to invest their time setting up everything from scratch. We welcome contributions to the Ask RipeSeed! Whether it's bug fixes, feature enhancements, or documentation improvements, your input is valued.
We are a team of super passionate developers, helping clients since 2021. We have worked with some amazing and brilliant customers and have built & launched various AI products for them. If you have an idea that you are planning to launch but don't have the engineering capacity, feel free to reach out to us at info@ripeseed.io. We are also aiming to launch interesting products and open source projects like these for the developer community, so stay tuned.
For any issues or assistance, please check the issues and discussions sections on GitHub. You can also reach out to the RipeSeed community or contact us directly through our website.