Repository files navigation

PyPIDocker Image Version (tag latest semver)GitHub commit activityPyPI - Downloads

English | 简体中文

Latest Progress 🎉

  • [March 2024] Add gemma-7b and qwen-7b models(based on Ollama)
  • [February 2024] Add mistral-7b model (based on Ollama)
  • [February 2024] Add gemini-pro model (based on Open API)
  • [January 2024] refactor the config-template.yaml to control the backend and the frontend settings at the same time, click to find more introduction about the config-template.yaml
  • [January 2024] Add internlm2-chat-7b model (based on LMDeploy)
  • [January 2024] Released version v0.0.1, officially open source!

Introduction

What is OpenAOE?

AOE, an acronym from DOTA2 for Area Of Effect, denotes an ability that can affect a group of targets within a certain area. Here, AOE in AI implies that user can obtain parallel outputs from multiple LLMs with one single prompt at the same time.

What problem does OpenAOE want to solve?

Currently, there are many open-source frameworks based on the ChatGPT for chat, but the LGC(LLM Group Chat) framework is still not coming yet.

The emergence of OpenAOE fills this gap: OpenAOE can help LLM researchers, evaluators, engineering developers, and even non-professionals to quickly access the market's well-known commercial and open-source LLMs, providing both single model serial response mode and multi-models parallel response mode.

What can you get from OpenAOE?

OpenAOE can:

  1. return one or more LLMs' answers at the same time by a single prompt.
  2. provide access to commercial LLM APIs, with default support for gpt3.5, gpt4, Google Palm, Minimax, Claude, Spark, etc., and also support user-defined access to other large model APIs. (API keys need to be prepared in advanced)
  3. provide access to open-source LLM APIs. ( We recommend to use LMDeploy to deploy with one click)
  4. provide backend APIs and a WEB-UI to meet the needs of different requirements.

Quick Run

Tip

Require python >= 3.9

We provide three different ways to run OpenAOE: run by piprun by docker and run by source code as well.

Run by pip

Install

pip install -U openaoe 

Start

openaoe -f /path/to/your/config-template.yaml

Run by docker

Install

There are two ways to get the OpenAOE docker image by:

  1. pull the OpenAOE docker image
docker pull opensealion/openaoe:latest
  1. or build a docker image
git clone https://github.com/internlm/OpenAOE
cd OpenAOE
docker build . -f docker/Dockerfile -t opensealion/openaoe:latest

Start

docker run -p 10099:10099 -v /path/to/your/config-template.yaml:/app/config.yaml --name OpenAOE opensealion/openaoe:latest

Run by source code

Install

  1. clone this project
git clone https://github.com/internlm/OpenAOE
  1. [optional] build the frontend project when the frontend codes are changed
cd OpenAOE/openaoe/frontend
npm install
npm run build

Start

cd OpenAOE # this OpenAOE is the clone directory
pip install -r openaoe/backend/requirements.txt
python -m openaoe.main -f /path/to/your/config-template.yaml

Tip

/path/to/your/config-template.yaml is a configuration file loaded by OpenAOE at startup, which contains the relevant configuration information for the LLMs, including: API URLs, AKSKs, Tokens, etc. A template configuration yaml file can be found in openaoe/backend/config/config-template.yaml. Note that, this config-template.yaml DOES NOT contain any API access data, you should add them by yourself.

Tech Report

You are always welcome to fork this project to contribute your workand find the TODOs in furture.

If you want to add more LLMs' APIs or features based on OpenAOE, the following info might be helpful.

Tech Stack

The technology stack we use includes:

  1. Backend framework based on python + fastapi;
  2. Frontend framework based on typescript + Sealion-Client (encapsulated based on React) + Sealion-UI.
  3. Build tools:
    1. conda: quickly create a virtual python env to install necessary packages
    2. npm: build the frontend project

Tip

The build tools can be installed quickly by pip install -U sealion-cli

Organization of the Repo

  • Frontend codes are in openaoe/frontend
  • Backend codes are in openaoe/backend
  • Project entry-point is openaoe/main.py

How to add a new model

Frontend

  • Add new model info like name, avatar, provider, etc in openaoe/frontend/src/config/model-config.ts
  • Add a new model basic API request payload configuration in openaoe/frontend/src/config/api-config.ts
  • Modify your new model's payload specifically in openaoe/frontend/src/services/fetch.ts, you may need to change the payload structure and handle corner cases according to your model's API definition.

About

LLM Group Chat Framework: chat with multiple LLMs at the same time. 大模型群聊框架:同时与多个大语言模型聊天。

Topics

Resources

Contributing

Stars

327 stars

Watchers

5 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all \u003cpre\u003e\u003ccode\u003e blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks"); } } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); } })(); (function(){ try { var __m = "github.com"; var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

PyPIDocker Image Version (tag latest semver)GitHub commit activityPyPI - Downloads

English | 简体中文

Latest Progress 🎉

  • [March 2024] Add gemma-7b and qwen-7b models(based on Ollama)
  • [February 2024] Add mistral-7b model (based on Ollama)
  • [February 2024] Add gemini-pro model (based on Open API)
  • [January 2024] refactor the config-template.yaml to control the backend and the frontend settings at the same time, click to find more introduction about the config-template.yaml
  • [January 2024] Add internlm2-chat-7b model (based on LMDeploy)
  • [January 2024] Released version v0.0.1, officially open source!

Introduction

What is OpenAOE?

AOE, an acronym from DOTA2 for Area Of Effect, denotes an ability that can affect a group of targets within a certain area. Here, AOE in AI implies that user can obtain parallel outputs from multiple LLMs with one single prompt at the same time.

What problem does OpenAOE want to solve?

Currently, there are many open-source frameworks based on the ChatGPT for chat, but the LGC(LLM Group Chat) framework is still not coming yet.

The emergence of OpenAOE fills this gap: OpenAOE can help LLM researchers, evaluators, engineering developers, and even non-professionals to quickly access the market's well-known commercial and open-source LLMs, providing both single model serial response mode and multi-models parallel response mode.

What can you get from OpenAOE?

OpenAOE can:

  1. return one or more LLMs' answers at the same time by a single prompt.
  2. provide access to commercial LLM APIs, with default support for gpt3.5, gpt4, Google Palm, Minimax, Claude, Spark, etc., and also support user-defined access to other large model APIs. (API keys need to be prepared in advanced)
  3. provide access to open-source LLM APIs. ( We recommend to use LMDeploy to deploy with one click)
  4. provide backend APIs and a WEB-UI to meet the needs of different requirements.

Quick Run

Tip

Require python >= 3.9

We provide three different ways to run OpenAOE: run by piprun by docker and run by source code as well.

Run by pip

Install

pip install -U openaoe 

Start

openaoe -f /path/to/your/config-template.yaml

Run by docker

Install

There are two ways to get the OpenAOE docker image by:

  1. pull the OpenAOE docker image
docker pull opensealion/openaoe:latest
  1. or build a docker image
git clone https://github.com/internlm/OpenAOE
cd OpenAOE
docker build . -f docker/Dockerfile -t opensealion/openaoe:latest

Start

docker run -p 10099:10099 -v /path/to/your/config-template.yaml:/app/config.yaml --name OpenAOE opensealion/openaoe:latest

Run by source code

Install

  1. clone this project
git clone https://github.com/internlm/OpenAOE
  1. [optional] build the frontend project when the frontend codes are changed
cd OpenAOE/openaoe/frontend
npm install
npm run build

Start

cd OpenAOE # this OpenAOE is the clone directory
pip install -r openaoe/backend/requirements.txt
python -m openaoe.main -f /path/to/your/config-template.yaml

Tip

/path/to/your/config-template.yaml is a configuration file loaded by OpenAOE at startup, which contains the relevant configuration information for the LLMs, including: API URLs, AKSKs, Tokens, etc. A template configuration yaml file can be found in openaoe/backend/config/config-template.yaml. Note that, this config-template.yaml DOES NOT contain any API access data, you should add them by yourself.

Tech Report

You are always welcome to fork this project to contribute your workand find the TODOs in furture.

If you want to add more LLMs' APIs or features based on OpenAOE, the following info might be helpful.

Tech Stack

The technology stack we use includes:

  1. Backend framework based on python + fastapi;
  2. Frontend framework based on typescript + Sealion-Client (encapsulated based on React) + Sealion-UI.
  3. Build tools:
    1. conda: quickly create a virtual python env to install necessary packages
    2. npm: build the frontend project

Tip

The build tools can be installed quickly by pip install -U sealion-cli

Organization of the Repo

  • Frontend codes are in openaoe/frontend
  • Backend codes are in openaoe/backend
  • Project entry-point is openaoe/main.py

How to add a new model

Frontend

  • Add new model info like name, avatar, provider, etc in openaoe/frontend/src/config/model-config.ts
  • Add a new model basic API request payload configuration in openaoe/frontend/src/config/api-config.ts
  • Modify your new model's payload specifically in openaoe/frontend/src/services/fetch.ts, you may need to change the payload structure and handle corner cases according to your model's API definition.

About

LLM Group Chat Framework: chat with multiple LLMs at the same time. 大模型群聊框架:同时与多个大语言模型聊天。

Topics

Resources

Contributing

Stars

327 stars

Watchers

5 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

PyPIDocker Image Version (tag latest semver)GitHub commit activityPyPI - Downloads

English | 简体中文

Latest Progress 🎉

  • [March 2024] Add gemma-7b and qwen-7b models(based on Ollama)
  • [February 2024] Add mistral-7b model (based on Ollama)
  • [February 2024] Add gemini-pro model (based on Open API)
  • [January 2024] refactor the config-template.yaml to control the backend and the frontend settings at the same time, click to find more introduction about the config-template.yaml
  • [January 2024] Add internlm2-chat-7b model (based on LMDeploy)
  • [January 2024] Released version v0.0.1, officially open source!

Introduction

What is OpenAOE?

AOE, an acronym from DOTA2 for Area Of Effect, denotes an ability that can affect a group of targets within a certain area. Here, AOE in AI implies that user can obtain parallel outputs from multiple LLMs with one single prompt at the same time.

What problem does OpenAOE want to solve?

Currently, there are many open-source frameworks based on the ChatGPT for chat, but the LGC(LLM Group Chat) framework is still not coming yet.

The emergence of OpenAOE fills this gap: OpenAOE can help LLM researchers, evaluators, engineering developers, and even non-professionals to quickly access the market's well-known commercial and open-source LLMs, providing both single model serial response mode and multi-models parallel response mode.

What can you get from OpenAOE?

OpenAOE can:

  1. return one or more LLMs' answers at the same time by a single prompt.
  2. provide access to commercial LLM APIs, with default support for gpt3.5, gpt4, Google Palm, Minimax, Claude, Spark, etc., and also support user-defined access to other large model APIs. (API keys need to be prepared in advanced)
  3. provide access to open-source LLM APIs. ( We recommend to use LMDeploy to deploy with one click)
  4. provide backend APIs and a WEB-UI to meet the needs of different requirements.

Quick Run

Tip

Require python >= 3.9

We provide three different ways to run OpenAOE: run by piprun by docker and run by source code as well.

Run by pip

Install

pip install -U openaoe 

Start

openaoe -f /path/to/your/config-template.yaml

Run by docker

Install

There are two ways to get the OpenAOE docker image by:

  1. pull the OpenAOE docker image
docker pull opensealion/openaoe:latest
  1. or build a docker image
git clone https://github.com/internlm/OpenAOE
cd OpenAOE
docker build . -f docker/Dockerfile -t opensealion/openaoe:latest

Start

docker run -p 10099:10099 -v /path/to/your/config-template.yaml:/app/config.yaml --name OpenAOE opensealion/openaoe:latest

Run by source code

Install

  1. clone this project
git clone https://github.com/internlm/OpenAOE
  1. [optional] build the frontend project when the frontend codes are changed
cd OpenAOE/openaoe/frontend
npm install
npm run build

Start

cd OpenAOE # this OpenAOE is the clone directory
pip install -r openaoe/backend/requirements.txt
python -m openaoe.main -f /path/to/your/config-template.yaml

Tip

/path/to/your/config-template.yaml is a configuration file loaded by OpenAOE at startup, which contains the relevant configuration information for the LLMs, including: API URLs, AKSKs, Tokens, etc. A template configuration yaml file can be found in openaoe/backend/config/config-template.yaml. Note that, this config-template.yaml DOES NOT contain any API access data, you should add them by yourself.

Tech Report

You are always welcome to fork this project to contribute your workand find the TODOs in furture.

If you want to add more LLMs' APIs or features based on OpenAOE, the following info might be helpful.

Tech Stack

The technology stack we use includes:

  1. Backend framework based on python + fastapi;
  2. Frontend framework based on typescript + Sealion-Client (encapsulated based on React) + Sealion-UI.
  3. Build tools:
    1. conda: quickly create a virtual python env to install necessary packages
    2. npm: build the frontend project

Tip

The build tools can be installed quickly by pip install -U sealion-cli

Organization of the Repo

  • Frontend codes are in openaoe/frontend
  • Backend codes are in openaoe/backend
  • Project entry-point is openaoe/main.py

How to add a new model

Frontend

  • Add new model info like name, avatar, provider, etc in openaoe/frontend/src/config/model-config.ts
  • Add a new model basic API request payload configuration in openaoe/frontend/src/config/api-config.ts
  • Modify your new model's payload specifically in openaoe/frontend/src/services/fetch.ts, you may need to change the payload structure and handle corner cases according to your model's API definition.

About

LLM Group Chat Framework: chat with multiple LLMs at the same time. 大模型群聊框架:同时与多个大语言模型聊天。

Topics

Resources

Contributing

Stars

327 stars

Watchers

5 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length \u003e 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

PyPIDocker Image Version (tag latest semver)GitHub commit activityPyPI - Downloads

English | 简体中文

Latest Progress 🎉

  • [March 2024] Add gemma-7b and qwen-7b models(based on Ollama)
  • [February 2024] Add mistral-7b model (based on Ollama)
  • [February 2024] Add gemini-pro model (based on Open API)
  • [January 2024] refactor the config-template.yaml to control the backend and the frontend settings at the same time, click to find more introduction about the config-template.yaml
  • [January 2024] Add internlm2-chat-7b model (based on LMDeploy)
  • [January 2024] Released version v0.0.1, officially open source!

Introduction

What is OpenAOE?

AOE, an acronym from DOTA2 for Area Of Effect, denotes an ability that can affect a group of targets within a certain area. Here, AOE in AI implies that user can obtain parallel outputs from multiple LLMs with one single prompt at the same time.

What problem does OpenAOE want to solve?

Currently, there are many open-source frameworks based on the ChatGPT for chat, but the LGC(LLM Group Chat) framework is still not coming yet.

The emergence of OpenAOE fills this gap: OpenAOE can help LLM researchers, evaluators, engineering developers, and even non-professionals to quickly access the market's well-known commercial and open-source LLMs, providing both single model serial response mode and multi-models parallel response mode.

What can you get from OpenAOE?

OpenAOE can:

  1. return one or more LLMs' answers at the same time by a single prompt.
  2. provide access to commercial LLM APIs, with default support for gpt3.5, gpt4, Google Palm, Minimax, Claude, Spark, etc., and also support user-defined access to other large model APIs. (API keys need to be prepared in advanced)
  3. provide access to open-source LLM APIs. ( We recommend to use LMDeploy to deploy with one click)
  4. provide backend APIs and a WEB-UI to meet the needs of different requirements.

Quick Run

Tip

Require python >= 3.9

We provide three different ways to run OpenAOE: run by piprun by docker and run by source code as well.

Run by pip

Install

pip install -U openaoe 

Start

openaoe -f /path/to/your/config-template.yaml

Run by docker

Install

There are two ways to get the OpenAOE docker image by:

  1. pull the OpenAOE docker image
docker pull opensealion/openaoe:latest
  1. or build a docker image
git clone https://github.com/internlm/OpenAOE
cd OpenAOE
docker build . -f docker/Dockerfile -t opensealion/openaoe:latest

Start

docker run -p 10099:10099 -v /path/to/your/config-template.yaml:/app/config.yaml --name OpenAOE opensealion/openaoe:latest

Run by source code

Install

  1. clone this project
git clone https://github.com/internlm/OpenAOE
  1. [optional] build the frontend project when the frontend codes are changed
cd OpenAOE/openaoe/frontend
npm install
npm run build

Start

cd OpenAOE # this OpenAOE is the clone directory
pip install -r openaoe/backend/requirements.txt
python -m openaoe.main -f /path/to/your/config-template.yaml

Tip

/path/to/your/config-template.yaml is a configuration file loaded by OpenAOE at startup, which contains the relevant configuration information for the LLMs, including: API URLs, AKSKs, Tokens, etc. A template configuration yaml file can be found in openaoe/backend/config/config-template.yaml. Note that, this config-template.yaml DOES NOT contain any API access data, you should add them by yourself.

Tech Report

You are always welcome to fork this project to contribute your workand find the TODOs in furture.

If you want to add more LLMs' APIs or features based on OpenAOE, the following info might be helpful.

Tech Stack

The technology stack we use includes:

  1. Backend framework based on python + fastapi;
  2. Frontend framework based on typescript + Sealion-Client (encapsulated based on React) + Sealion-UI.
  3. Build tools:
    1. conda: quickly create a virtual python env to install necessary packages
    2. npm: build the frontend project

Tip

The build tools can be installed quickly by pip install -U sealion-cli

Organization of the Repo

  • Frontend codes are in openaoe/frontend
  • Backend codes are in openaoe/backend
  • Project entry-point is openaoe/main.py

How to add a new model

Frontend

  • Add new model info like name, avatar, provider, etc in openaoe/frontend/src/config/model-config.ts
  • Add a new model basic API request payload configuration in openaoe/frontend/src/config/api-config.ts
  • Modify your new model's payload specifically in openaoe/frontend/src/services/fetch.ts, you may need to change the payload structure and handle corner cases according to your model's API definition.

About

LLM Group Chat Framework: chat with multiple LLMs at the same time. 大模型群聊框架:同时与多个大语言模型聊天。

Topics

Resources

Contributing

Stars

327 stars

Watchers

5 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

PyPIDocker Image Version (tag latest semver)GitHub commit activityPyPI - Downloads

English | 简体中文

Latest Progress 🎉

  • [March 2024] Add gemma-7b and qwen-7b models(based on Ollama)
  • [February 2024] Add mistral-7b model (based on Ollama)
  • [February 2024] Add gemini-pro model (based on Open API)
  • [January 2024] refactor the config-template.yaml to control the backend and the frontend settings at the same time, click to find more introduction about the config-template.yaml
  • [January 2024] Add internlm2-chat-7b model (based on LMDeploy)
  • [January 2024] Released version v0.0.1, officially open source!

Introduction

What is OpenAOE?

AOE, an acronym from DOTA2 for Area Of Effect, denotes an ability that can affect a group of targets within a certain area. Here, AOE in AI implies that user can obtain parallel outputs from multiple LLMs with one single prompt at the same time.

What problem does OpenAOE want to solve?

Currently, there are many open-source frameworks based on the ChatGPT for chat, but the LGC(LLM Group Chat) framework is still not coming yet.

The emergence of OpenAOE fills this gap: OpenAOE can help LLM researchers, evaluators, engineering developers, and even non-professionals to quickly access the market's well-known commercial and open-source LLMs, providing both single model serial response mode and multi-models parallel response mode.

What can you get from OpenAOE?

OpenAOE can:

  1. return one or more LLMs' answers at the same time by a single prompt.
  2. provide access to commercial LLM APIs, with default support for gpt3.5, gpt4, Google Palm, Minimax, Claude, Spark, etc., and also support user-defined access to other large model APIs. (API keys need to be prepared in advanced)
  3. provide access to open-source LLM APIs. ( We recommend to use LMDeploy to deploy with one click)
  4. provide backend APIs and a WEB-UI to meet the needs of different requirements.

Quick Run

Tip

Require python >= 3.9

We provide three different ways to run OpenAOE: run by piprun by docker and run by source code as well.

Run by pip

Install

pip install -U openaoe 

Start

openaoe -f /path/to/your/config-template.yaml

Run by docker

Install

There are two ways to get the OpenAOE docker image by:

  1. pull the OpenAOE docker image
docker pull opensealion/openaoe:latest
  1. or build a docker image
git clone https://github.com/internlm/OpenAOE
cd OpenAOE
docker build . -f docker/Dockerfile -t opensealion/openaoe:latest

Start

docker run -p 10099:10099 -v /path/to/your/config-template.yaml:/app/config.yaml --name OpenAOE opensealion/openaoe:latest

Run by source code

Install

  1. clone this project
git clone https://github.com/internlm/OpenAOE
  1. [optional] build the frontend project when the frontend codes are changed
cd OpenAOE/openaoe/frontend
npm install
npm run build

Start

cd OpenAOE # this OpenAOE is the clone directory
pip install -r openaoe/backend/requirements.txt
python -m openaoe.main -f /path/to/your/config-template.yaml

Tip

/path/to/your/config-template.yaml is a configuration file loaded by OpenAOE at startup, which contains the relevant configuration information for the LLMs, including: API URLs, AKSKs, Tokens, etc. A template configuration yaml file can be found in openaoe/backend/config/config-template.yaml. Note that, this config-template.yaml DOES NOT contain any API access data, you should add them by yourself.

Tech Report

You are always welcome to fork this project to contribute your workand find the TODOs in furture.

If you want to add more LLMs' APIs or features based on OpenAOE, the following info might be helpful.

Tech Stack

The technology stack we use includes:

  1. Backend framework based on python + fastapi;
  2. Frontend framework based on typescript + Sealion-Client (encapsulated based on React) + Sealion-UI.
  3. Build tools:
    1. conda: quickly create a virtual python env to install necessary packages
    2. npm: build the frontend project

Tip

The build tools can be installed quickly by pip install -U sealion-cli

Organization of the Repo

  • Frontend codes are in openaoe/frontend
  • Backend codes are in openaoe/backend
  • Project entry-point is openaoe/main.py

How to add a new model

Frontend

  • Add new model info like name, avatar, provider, etc in openaoe/frontend/src/config/model-config.ts
  • Add a new model basic API request payload configuration in openaoe/frontend/src/config/api-config.ts
  • Modify your new model's payload specifically in openaoe/frontend/src/services/fetch.ts, you may need to change the payload structure and handle corner cases according to your model's API definition.

About

LLM Group Chat Framework: chat with multiple LLMs at the same time. 大模型群聊框架:同时与多个大语言模型聊天。

Topics

Resources

Contributing

Stars

327 stars

Watchers

5 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

PyPIDocker Image Version (tag latest semver)GitHub commit activityPyPI - Downloads

English | 简体中文

Latest Progress 🎉

  • [March 2024] Add gemma-7b and qwen-7b models(based on Ollama)
  • [February 2024] Add mistral-7b model (based on Ollama)
  • [February 2024] Add gemini-pro model (based on Open API)
  • [January 2024] refactor the config-template.yaml to control the backend and the frontend settings at the same time, click to find more introduction about the config-template.yaml
  • [January 2024] Add internlm2-chat-7b model (based on LMDeploy)
  • [January 2024] Released version v0.0.1, officially open source!

Introduction

What is OpenAOE?

AOE, an acronym from DOTA2 for Area Of Effect, denotes an ability that can affect a group of targets within a certain area. Here, AOE in AI implies that user can obtain parallel outputs from multiple LLMs with one single prompt at the same time.

What problem does OpenAOE want to solve?

Currently, there are many open-source frameworks based on the ChatGPT for chat, but the LGC(LLM Group Chat) framework is still not coming yet.

The emergence of OpenAOE fills this gap: OpenAOE can help LLM researchers, evaluators, engineering developers, and even non-professionals to quickly access the market's well-known commercial and open-source LLMs, providing both single model serial response mode and multi-models parallel response mode.

What can you get from OpenAOE?

OpenAOE can:

  1. return one or more LLMs' answers at the same time by a single prompt.
  2. provide access to commercial LLM APIs, with default support for gpt3.5, gpt4, Google Palm, Minimax, Claude, Spark, etc., and also support user-defined access to other large model APIs. (API keys need to be prepared in advanced)
  3. provide access to open-source LLM APIs. ( We recommend to use LMDeploy to deploy with one click)
  4. provide backend APIs and a WEB-UI to meet the needs of different requirements.

Quick Run

Tip

Require python >= 3.9

We provide three different ways to run OpenAOE: run by piprun by docker and run by source code as well.

Run by pip

Install

pip install -U openaoe 

Start

openaoe -f /path/to/your/config-template.yaml

Run by docker

Install

There are two ways to get the OpenAOE docker image by:

  1. pull the OpenAOE docker image
docker pull opensealion/openaoe:latest
  1. or build a docker image
git clone https://github.com/internlm/OpenAOE
cd OpenAOE
docker build . -f docker/Dockerfile -t opensealion/openaoe:latest

Start

docker run -p 10099:10099 -v /path/to/your/config-template.yaml:/app/config.yaml --name OpenAOE opensealion/openaoe:latest

Run by source code

Install

  1. clone this project
git clone https://github.com/internlm/OpenAOE
  1. [optional] build the frontend project when the frontend codes are changed
cd OpenAOE/openaoe/frontend
npm install
npm run build

Start

cd OpenAOE # this OpenAOE is the clone directory
pip install -r openaoe/backend/requirements.txt
python -m openaoe.main -f /path/to/your/config-template.yaml

Tip

/path/to/your/config-template.yaml is a configuration file loaded by OpenAOE at startup, which contains the relevant configuration information for the LLMs, including: API URLs, AKSKs, Tokens, etc. A template configuration yaml file can be found in openaoe/backend/config/config-template.yaml. Note that, this config-template.yaml DOES NOT contain any API access data, you should add them by yourself.

Tech Report

You are always welcome to fork this project to contribute your workand find the TODOs in furture.

If you want to add more LLMs' APIs or features based on OpenAOE, the following info might be helpful.

Tech Stack

The technology stack we use includes:

  1. Backend framework based on python + fastapi;
  2. Frontend framework based on typescript + Sealion-Client (encapsulated based on React) + Sealion-UI.
  3. Build tools:
    1. conda: quickly create a virtual python env to install necessary packages
    2. npm: build the frontend project

Tip

The build tools can be installed quickly by pip install -U sealion-cli

Organization of the Repo

  • Frontend codes are in openaoe/frontend
  • Backend codes are in openaoe/backend
  • Project entry-point is openaoe/main.py

How to add a new model

Frontend

  • Add new model info like name, avatar, provider, etc in openaoe/frontend/src/config/model-config.ts
  • Add a new model basic API request payload configuration in openaoe/frontend/src/config/api-config.ts
  • Modify your new model's payload specifically in openaoe/frontend/src/services/fetch.ts, you may need to change the payload structure and handle corner cases according to your model's API definition.

About

LLM Group Chat Framework: chat with multiple LLMs at the same time. 大模型群聊框架:同时与多个大语言模型聊天。

Topics

Resources

Contributing

Stars

327 stars

Watchers

5 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

PyPIDocker Image Version (tag latest semver)GitHub commit activityPyPI - Downloads

English | 简体中文

Latest Progress 🎉

  • [March 2024] Add gemma-7b and qwen-7b models(based on Ollama)
  • [February 2024] Add mistral-7b model (based on Ollama)
  • [February 2024] Add gemini-pro model (based on Open API)
  • [January 2024] refactor the config-template.yaml to control the backend and the frontend settings at the same time, click to find more introduction about the config-template.yaml
  • [January 2024] Add internlm2-chat-7b model (based on LMDeploy)
  • [January 2024] Released version v0.0.1, officially open source!

Introduction

What is OpenAOE?

AOE, an acronym from DOTA2 for Area Of Effect, denotes an ability that can affect a group of targets within a certain area. Here, AOE in AI implies that user can obtain parallel outputs from multiple LLMs with one single prompt at the same time.

What problem does OpenAOE want to solve?

Currently, there are many open-source frameworks based on the ChatGPT for chat, but the LGC(LLM Group Chat) framework is still not coming yet.

The emergence of OpenAOE fills this gap: OpenAOE can help LLM researchers, evaluators, engineering developers, and even non-professionals to quickly access the market's well-known commercial and open-source LLMs, providing both single model serial response mode and multi-models parallel response mode.

What can you get from OpenAOE?

OpenAOE can:

  1. return one or more LLMs' answers at the same time by a single prompt.
  2. provide access to commercial LLM APIs, with default support for gpt3.5, gpt4, Google Palm, Minimax, Claude, Spark, etc., and also support user-defined access to other large model APIs. (API keys need to be prepared in advanced)
  3. provide access to open-source LLM APIs. ( We recommend to use LMDeploy to deploy with one click)
  4. provide backend APIs and a WEB-UI to meet the needs of different requirements.

Quick Run

Tip

Require python >= 3.9

We provide three different ways to run OpenAOE: run by piprun by docker and run by source code as well.

Run by pip

Install

pip install -U openaoe 

Start

openaoe -f /path/to/your/config-template.yaml

Run by docker

Install

There are two ways to get the OpenAOE docker image by:

  1. pull the OpenAOE docker image
docker pull opensealion/openaoe:latest
  1. or build a docker image
git clone https://github.com/internlm/OpenAOE
cd OpenAOE
docker build . -f docker/Dockerfile -t opensealion/openaoe:latest

Start

docker run -p 10099:10099 -v /path/to/your/config-template.yaml:/app/config.yaml --name OpenAOE opensealion/openaoe:latest

Run by source code

Install

  1. clone this project
git clone https://github.com/internlm/OpenAOE
  1. [optional] build the frontend project when the frontend codes are changed
cd OpenAOE/openaoe/frontend
npm install
npm run build

Start

cd OpenAOE # this OpenAOE is the clone directory
pip install -r openaoe/backend/requirements.txt
python -m openaoe.main -f /path/to/your/config-template.yaml

Tip

/path/to/your/config-template.yaml is a configuration file loaded by OpenAOE at startup, which contains the relevant configuration information for the LLMs, including: API URLs, AKSKs, Tokens, etc. A template configuration yaml file can be found in openaoe/backend/config/config-template.yaml. Note that, this config-template.yaml DOES NOT contain any API access data, you should add them by yourself.

Tech Report

You are always welcome to fork this project to contribute your workand find the TODOs in furture.

If you want to add more LLMs' APIs or features based on OpenAOE, the following info might be helpful.

Tech Stack

The technology stack we use includes:

  1. Backend framework based on python + fastapi;
  2. Frontend framework based on typescript + Sealion-Client (encapsulated based on React) + Sealion-UI.
  3. Build tools:
    1. conda: quickly create a virtual python env to install necessary packages
    2. npm: build the frontend project

Tip

The build tools can be installed quickly by pip install -U sealion-cli

Organization of the Repo

  • Frontend codes are in openaoe/frontend
  • Backend codes are in openaoe/backend
  • Project entry-point is openaoe/main.py

How to add a new model

Frontend

  • Add new model info like name, avatar, provider, etc in openaoe/frontend/src/config/model-config.ts
  • Add a new model basic API request payload configuration in openaoe/frontend/src/config/api-config.ts
  • Modify your new model's payload specifically in openaoe/frontend/src/services/fetch.ts, you may need to change the payload structure and handle corner cases according to your model's API definition.

About

LLM Group Chat Framework: chat with multiple LLMs at the same time. 大模型群聊框架:同时与多个大语言模型聊天。

Topics

Resources

Contributing

Stars

327 stars

Watchers

5 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

PyPIDocker Image Version (tag latest semver)GitHub commit activityPyPI - Downloads

English | 简体中文

Latest Progress 🎉

  • [March 2024] Add gemma-7b and qwen-7b models(based on Ollama)
  • [February 2024] Add mistral-7b model (based on Ollama)
  • [February 2024] Add gemini-pro model (based on Open API)
  • [January 2024] refactor the config-template.yaml to control the backend and the frontend settings at the same time, click to find more introduction about the config-template.yaml
  • [January 2024] Add internlm2-chat-7b model (based on LMDeploy)
  • [January 2024] Released version v0.0.1, officially open source!

Introduction

What is OpenAOE?

AOE, an acronym from DOTA2 for Area Of Effect, denotes an ability that can affect a group of targets within a certain area. Here, AOE in AI implies that user can obtain parallel outputs from multiple LLMs with one single prompt at the same time.

What problem does OpenAOE want to solve?

Currently, there are many open-source frameworks based on the ChatGPT for chat, but the LGC(LLM Group Chat) framework is still not coming yet.

The emergence of OpenAOE fills this gap: OpenAOE can help LLM researchers, evaluators, engineering developers, and even non-professionals to quickly access the market's well-known commercial and open-source LLMs, providing both single model serial response mode and multi-models parallel response mode.

What can you get from OpenAOE?

OpenAOE can:

  1. return one or more LLMs' answers at the same time by a single prompt.
  2. provide access to commercial LLM APIs, with default support for gpt3.5, gpt4, Google Palm, Minimax, Claude, Spark, etc., and also support user-defined access to other large model APIs. (API keys need to be prepared in advanced)
  3. provide access to open-source LLM APIs. ( We recommend to use LMDeploy to deploy with one click)
  4. provide backend APIs and a WEB-UI to meet the needs of different requirements.

Quick Run

Tip

Require python >= 3.9

We provide three different ways to run OpenAOE: run by piprun by docker and run by source code as well.

Run by pip

Install

pip install -U openaoe 

Start

openaoe -f /path/to/your/config-template.yaml

Run by docker

Install

There are two ways to get the OpenAOE docker image by:

  1. pull the OpenAOE docker image
docker pull opensealion/openaoe:latest
  1. or build a docker image
git clone https://github.com/internlm/OpenAOE
cd OpenAOE
docker build . -f docker/Dockerfile -t opensealion/openaoe:latest

Start

docker run -p 10099:10099 -v /path/to/your/config-template.yaml:/app/config.yaml --name OpenAOE opensealion/openaoe:latest

Run by source code

Install

  1. clone this project
git clone https://github.com/internlm/OpenAOE
  1. [optional] build the frontend project when the frontend codes are changed
cd OpenAOE/openaoe/frontend
npm install
npm run build

Start

cd OpenAOE # this OpenAOE is the clone directory
pip install -r openaoe/backend/requirements.txt
python -m openaoe.main -f /path/to/your/config-template.yaml

Tip

/path/to/your/config-template.yaml is a configuration file loaded by OpenAOE at startup, which contains the relevant configuration information for the LLMs, including: API URLs, AKSKs, Tokens, etc. A template configuration yaml file can be found in openaoe/backend/config/config-template.yaml. Note that, this config-template.yaml DOES NOT contain any API access data, you should add them by yourself.

Tech Report

You are always welcome to fork this project to contribute your workand find the TODOs in furture.

If you want to add more LLMs' APIs or features based on OpenAOE, the following info might be helpful.

Tech Stack

The technology stack we use includes:

  1. Backend framework based on python + fastapi;
  2. Frontend framework based on typescript + Sealion-Client (encapsulated based on React) + Sealion-UI.
  3. Build tools:
    1. conda: quickly create a virtual python env to install necessary packages
    2. npm: build the frontend project

Tip

The build tools can be installed quickly by pip install -U sealion-cli

Organization of the Repo

  • Frontend codes are in openaoe/frontend
  • Backend codes are in openaoe/backend
  • Project entry-point is openaoe/main.py

How to add a new model

Frontend

  • Add new model info like name, avatar, provider, etc in openaoe/frontend/src/config/model-config.ts
  • Add a new model basic API request payload configuration in openaoe/frontend/src/config/api-config.ts
  • Modify your new model's payload specifically in openaoe/frontend/src/services/fetch.ts, you may need to change the payload structure and handle corner cases according to your model's API definition.

About

LLM Group Chat Framework: chat with multiple LLMs at the same time. 大模型群聊框架:同时与多个大语言模型聊天。

Topics

Resources

Contributing

Stars

327 stars

Watchers

5 watching

Forks

Releases

Packages

Used by

Contributors

Languages