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:
π [2024-12-02]RainbowStock_Analysis support gpt-4o-mini, gpt-4oοΌqwen2.5
π [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>   |   π€ <a href="https://modelscope.cn/organization/qwen">Qwen ModelScope</a>   |    π <a href="https://arxiv.org/abs/2309.16609">Qwen Paper</a>    ο½   π₯οΈ <a href="https://modelscope.cn/studios/qwen/Qwen-72B-Chat-Demo/summary">Qwen Demo</a>β’ <br> </p> <p align="center">Table of Contents
- Getting Started
- Free Use of GPT API
- Knowledge Base QA Search Algorithm
- BM25 Retrievers
- EnsembleRetriever
- Common Usage Pattern
- RainbowGPT Overview
Getting Started
Environment Setup
- Install Required Packages:
Make sure your environment is set up, and install the necessary packages using the following command:
Note: If you encounter any issues, ensure that you have the correct dependencies installed.pip install -r requirements.txt
[!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 toolThis step is crucial for proper execution. π
API Configuration
Before using the application, follow these steps to configure API-related information in the .env
file:
-
OpenAI API Key:
- Create an account on OpenAI and obtain your API key.
- Open the
.env
file and set your API key:
ReplaceOPENAI_API_KEY=YOUR_OPENAI_API_KEY
YOUR_OPENAI_API_KEY
with the actual API key you obtained from OpenAI. Ensure accuracy to prevent authentication issues.
-
Local API URL (Qwen examples):
- To start a Qwen server with OpenAI-like capabilities, use the following commands:
After starting the server, configure thepip install fastapi uvicorn openai pydantic sse_starlette python Rainbow_utils/get_local_openai_api.py
api_base
andapi_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.
- To start a Qwen server with OpenAI-like capabilities, use the following commands:
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 |
---|---|
<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
β‘ SQL_Agent UI
π StockGPT Analysis
π Explore the diverse capabilities of RainbowGPT and leverage its powerful modules for your projects! πβ¨