Skip to content

ZhuJD-China/RainbowGPT

Repository files navigation

RainbowGPT

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!

Navigate at [cookbook.openai.com]
🦜️🔗 LangChain ⚡ Building applications with LLMs through composability ⚡
🤗 Qwen HF   |   🤖 Qwen ModelScope   |    📑 Qwen Paper    |   🖥️ Qwen Demo

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).

  • 🚀 Apply for a Free API Key in Beta
  • Forwarding Host1: https://api.chatanywhere.com.cn (Domestic relay, lower latency, recommended)
  • Forwarding Host2: https://api.chatanywhere.cn (For international usage, domestic users need a global proxy)
  • Check your balance and usage records (announcements are also posted here): Balance Inquiry and Announcements
  • The forwarding API cannot directly make requests to the official api.openai.com endpoint. Change the request address to api.chatanywhere.com.cn to use it. Most plugins and software can be modified accordingly.

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

  • BM25-based Retriever: Specialized in efficiently locating relevant documents based on keywords, making it particularly effective for sparse retrieval.
  • Embedding Similarity Retriever: Utilizes embedding vectors for document and query embedding, excelling in identifying relevant documents through semantic similarity. This retriever is well-suited for dense retrieval scenarios.

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
⚡🌐 Web Scraping Summarization 🤖 Chatbots

🤗 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

About

🌈RainbowGPT AI Agent & Dalle3 free & Stock Analysis & GPT-4 Free API & Private LLM Application & SQL Agent for Everyone

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages