Home

Awesome

RainbowGPT

<div align="center"> <p> <a align="center" href="https://github.com/ZhuJD-China/RainbowGPT" target="_blank"> <img width="20%" height="150" src="https://github.com/ZhuJD-China/RainbowGPT/blob/master/imgs/logo.jpg"></a> </p> </div>

RainbowAgent Integration Summary:

🌈 [2023-12-15]Dalle3 Artistic Image Generation Unveiled 🎨

🎨 [2023-12-10]Simplified MySQL Management: Effortlessly navigate MySQL databases with our cornerstone Mysql Agent UI module. It offers a user-friendly interface suitable for all skill levels.

πŸ“‰ [2023-12-05]Comprehensive Stock Insights: Empower financial decisions with our Stock Analysis module. Advanced technology provides a holistic view of market trends, risk assessments, and personalized recommendations.

βš™οΈ Technological Synergy: Benefit from the seamless integration of AI technologies like GPT-4, GPT3.5, ChatGlm3, Qwen, and more. This synergy enhances adaptability and ensures smooth information flow.

πŸš€ Innovation Roadmap: Stay at the forefront of AI advancements with RainbowGPT's commitment to continuous expansion and integration of emerging technologies.

Experience simplicity, insight, and creativity with RainbowGPT's powerful features!

<p align="center"> ✨ <a href="https://github.com/openai/openai-cookbook" >Navigate at [cookbook.openai.com]</a> β€’ <br> πŸ¦œοΈπŸ”— <a href="https://github.com/langchain-ai/langchain" > LangChain ⚑ Building applications with LLMs through composability ⚑</a> β€’ <br> πŸ€— <a href="https://huggingface.co/Qwen">Qwen HF</a>&nbsp&nbsp | &nbsp&nbspπŸ€– <a href="https://modelscope.cn/organization/qwen">Qwen ModelScope</a>&nbsp&nbsp | &nbsp&nbsp πŸ“‘ <a href="https://arxiv.org/abs/2309.16609">Qwen Paper</a> &nbsp&nbsp | &nbsp&nbspπŸ–₯️ <a href="https://modelscope.cn/studios/qwen/Qwen-72B-Chat-Demo/summary">Qwen Demo</a>β€’ <br> </p> <p align="center">

Table of Contents

  1. Getting Started
  2. Free Use of GPT API
  3. Knowledge Base QA Search Algorithm
  4. BM25 Retrievers
  5. EnsembleRetriever
  6. Common Usage Pattern
  7. RainbowGPT Overview

Getting Started

Environment Setup

  1. Install Required Packages: Make sure your environment is set up, and install the necessary packages using the following command:
    pip install -r requirements.txt
    
    Note: If you encounter any issues, ensure that you have the correct dependencies installed.

[!TIP] To launch the entire project, you only need to execute RainbowGPT_Launchpad_UI.py

make sure to relocate the modified 3rd_modify/langchain/vectorstores/chroma.py file to the Langchain module's library folder and rename it to match the library file when use Local Search tool.

Make sure to select the right Rainbow_utils/chromedriver.exe to match your Chrome version when use Google Search tool

This step is crucial for proper execution. 🌈

API Configuration

Before using the application, follow these steps to configure API-related information in the .env file:

  1. OpenAI API Key:

    • Create an account on OpenAI and obtain your API key.
    • Open the .env file and set your API key:
      OPENAI_API_KEY=YOUR_OPENAI_API_KEY
      
      Replace YOUR_OPENAI_API_KEY with the actual API key you obtained from OpenAI. Ensure accuracy to prevent authentication issues.
  2. Local API URL (Qwen examples):

    • To start a Qwen server with OpenAI-like capabilities, use the following commands:
      pip install fastapi uvicorn openai pydantic sse_starlette
      python Rainbow_utils/get_local_openai_api.py
      
      After starting the server, configure the api_base and api_key in your client. Ensure that the configuration follows the specified format.
      llm = ChatOpenAI(
         model_name="Qwen",
         openai_api_base="http://localhost:8000/v1",
         openai_api_key="EMPTY",
         streaming=False,
      )
      

    ✨ I have already integrated it. Please fill in the corresponding apibase and apikey in UI.

Now your environment is set up, and the API is configured. You are ready to run the application! Feel free to let me know if you have any specific preferences or additional details you'd like to include!

Free Use of GPT API

🌐 We are committed to expanding capacity based on usage and providing the API for free as long as we are not officially sanctioned. If you find this project helpful, please consider giving us a ⭐.

⚠️Due to frequent malicious requests, we no longer offer public free keys directly. Now, you need to use your GitHub account to claim your own free key.

This API Key is used for forwarding API requests. Change the Host to api.chatanywhere.com.cn (preferred for domestic usage) or api.chatanywhere.cn (for international usage, domestic users need a global proxy).

Method 1

import openai
openai.api_base = "https://api.chatanywhere.com.cn/v1"
# openai.api_base = "https://api.chatanywhere.cn/v1"

Method 2 (Use if Method 1 doesn't work) Modify the environment variable OPENAI_API_BASE. Search for how to change environment variables on your specific system. If changes to the environment variable don't take effect, restart your system.

OPENAI_API_BASE=https://api.chatanywhere.com.cn/v1
or OPENAI_API_BASE=https://api.chatanywhere.cn/v1

Open Source gpt_academic Locate the config.py file and modify the API_URL_REDIRECT configuration to the following:

API_URL_REDIRECT = {"https://api.openai.com/v1/chat/completions": "https://api.chatanywhere.com.cn/v1/chat/completions"}
# API_URL_REDIRECT = {"https://api.openai.com/v1/chat/completions": "https://api.chatanywhere.cn/v1/chat/completions"}

The free API Key has a limit of 60 requests per hour per IP address and Key. If you use multiple keys under the same IP, the total hourly request limit for all keys cannot exceed 60. Similarly, if you use a single key across multiple IPs, the hourly request limit for that key cannot exceed 60.

Knowledge Base QA Search Algorithm

🧠 The knowledge base QA search algorithm optimizes document retrieval through context compression. Leveraging the query context, it strategically reduces document content using a document compressor, enhancing retrieval efficiency by returning only information relevant to the query. The ensemble of retrievers combines diverse results, creating a synergy that elevates overall performance.

BM25 Retrievers

EnsembleRetriever

πŸš€EnsembleRetriever is a powerful retrieval mechanism that combines the strengths of various retrievers. It takes a list of retrievers as input, integrates their results using the get_relevant_documents() methods, and reranks the outcomes using the Reciprocal Rank Fusion algorithm.

By leveraging the diverse strengths of different algorithms, EnsembleRetriever achieves superior performance compared to individual retrievers.

Common Usage Pattern

πŸ”„ The most effective use of the Knowledge Base QA Search involves combining a sparse retriever (e.g., BM25) with a dense retriever (e.g., embedding similarity). This "hybrid search" optimally utilizes the complementary strengths of both retrievers for comprehensive Knowledge.

πŸ“Š Explore the Stock Analysis module and unlock valuable insights for your investment decisions! πŸš€ #StockAnalysis #RainbowGPT #AIInvesting

RainbowGPT Overview

πŸ‘‹ Retrieval SearchπŸ“š SQL Agent
<img src="https://github.com/ZhuJD-China/RainbowGPT/blob/master/imgs/Retrieval_Search.png" width="400"/><img src="https://github.com/ZhuJD-China/RainbowGPT/blob/master/imgs/SQLAgent.png" width="400"/>
⚑🌐 Web Scraping SummarizationπŸ€– Chatbots
<img src="https://github.com/ZhuJD-China/RainbowGPT/blob/master/imgs/Summarization.png" width="400"/><img src="https://github.com/ZhuJD-China/RainbowGPT/blob/master/imgs/Chatbots.png" width="400"/>

πŸ€— Rainbow Agent UI WebScraping

⚑ SQL_Agent UI SQL_Agent

πŸ“Š StockGPT Analysis StockGPT

Star History Chart

πŸš€ Explore the diverse capabilities of RainbowGPT and leverage its powerful modules for your projects! 🌈✨

🌟 Contributors

langchain contributors