{"id":19529860,"url":"https://github.com/internlm/openaoe","last_synced_at":"2025-04-04T23:07:25.447Z","repository":{"id":217512905,"uuid":"741884145","full_name":"InternLM/OpenAOE","owner":"InternLM","description":"LLM Group Chat Framework: chat with multiple LLMs at the same time.      大模型群聊框架：同时与多个大语言模型聊天。","archived":false,"fork":false,"pushed_at":"2024-04-10T06:19:43.000Z","size":31958,"stargazers_count":286,"open_issues_count":5,"forks_count":25,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-03-28T22:12:15.948Z","etag":null,"topics":["chat-application","llms"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/InternLM.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-01-11T10:06:36.000Z","updated_at":"2025-03-22T04:12:01.000Z","dependencies_parsed_at":"2024-06-19T03:11:32.674Z","dependency_job_id":null,"html_url":"https://github.com/InternLM/OpenAOE","commit_stats":null,"previous_names":["internlm/openaoe"],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InternLM%2FOpenAOE","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InternLM%2FOpenAOE/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InternLM%2FOpenAOE/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InternLM%2FOpenAOE/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/InternLM","download_url":"https://codeload.github.com/InternLM/OpenAOE/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247261600,"owners_count":20910108,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chat-application","llms"],"created_at":"2024-11-11T01:27:55.351Z","updated_at":"2025-04-04T23:07:25.428Z","avatar_url":"https://github.com/InternLM.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"docs/_static/image/aoe-logo.svg\" width=\"250\"/\u003e\n\n[![PyPI](https://img.shields.io/pypi/v/OpenAOE)](https://pypi.org/project/OpenAOE)\n[![Docker Image Version (tag latest semver)](https://img.shields.io/docker/v/opensealion/openaoe?label=docker)](https://hub.docker.com/r/opensealion/openaoe?label=docker)\n![GitHub commit activity](https://img.shields.io/github/commit-activity/w/internlm/openaoe?label=commits)\n![PyPI - Downloads](https://img.shields.io/pypi/dw/openaoe?label=pip%20downloads)\n\n\n\n\n\nEnglish | [简体中文](docs/README_zh-CN.md)\n\n\u003c/div\u003e\n\n\n## Latest Progress 🎉\n- \\[March 2024\\] Add gemma-7b and qwen-7b models（based on Ollama）\n- \\[February 2024\\] Add mistral-7b model (based on Ollama)\n- \\[February 2024\\] Add gemini-pro model (based on Open API)\n- \\[January 2024\\] refactor the config-template.yaml to control the backend and the frontend settings at the same time, [click](https://github.com/InternLM/OpenAOE/blob/main/docs/tech-report/config-template.md) to find more introduction about the `config-template.yaml`\n- \\[January 2024\\] Add internlm2-chat-7b model (based on LMDeploy)\n- \\[January 2024\\] Released version v0.0.1, officially open source！\n______________________________________________________________________\n\n# Introduction\n## What is OpenAOE?\nAOE, an acronym from DOTA2 for Area Of Effect, denotes an ability that can affect a group of targets within a certain area.\nHere, AOE in AI implies that user can obtain parallel outputs from multiple LLMs with one single prompt at the same time.\n\n![](docs/_static/gif/aoe-en.gif)\n\n\n## What problem does OpenAOE want to solve?\nCurrently, there are many open-source frameworks based on the ChatGPT for chat, but the LGC(LLM Group Chat) framework is still not coming yet.\n\nThe emergence of OpenAOE fills this gap:\nOpenAOE 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.\n\n\n\n## What can you get from OpenAOE?\nOpenAOE can:\n1. return one or more LLMs' answers **at the same time** by a single prompt.\n2. 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)\n3. provide access to open-source LLM APIs. ( We recommend to use [LMDeploy](https://github.com/InternLM/lmdeploy) to deploy with one click)\n4. provide backend APIs and a WEB-UI to meet the needs of different requirements.\n\n\n\n# Quick Run\n\u003e [!TIP]\n\u003e Require python \u003e= 3.9\n\nWe provide three different ways to run OpenAOE: `run by pip`， `run by docker` and `run by source code` as well.\n\n## Run by pip \n### **Install**\n```shell\npip install -U openaoe \n```\n### **Start**\n```shell\nopenaoe -f /path/to/your/config-template.yaml\n```\n\n## Run by docker\n### **Install**\n\nThere are two ways to get the OpenAOE docker image by:\n1. pull the OpenAOE docker image\n```shell\ndocker pull opensealion/openaoe:latest\n```\n\n2. or build a docker image\n```shell\ngit clone https://github.com/internlm/OpenAOE\ncd OpenAOE\ndocker build . -f docker/Dockerfile -t opensealion/openaoe:latest\n```\n\n### **Start**\n```shell\ndocker run -p 10099:10099 -v /path/to/your/config-template.yaml:/app/config.yaml --name OpenAOE opensealion/openaoe:latest\n```\n\n## Run by source code\n### **Install**\n1. clone this project\n```shell\ngit clone https://github.com/internlm/OpenAOE\n```\n2. [_optional_] build the frontend project when the frontend codes are changed\n```shell\ncd OpenAOE/openaoe/frontend\nnpm install\nnpm run build\n```\n\n\n### **Start**\n```shell\ncd OpenAOE # this OpenAOE is the clone directory\npip install -r openaoe/backend/requirements.txt\npython -m openaoe.main -f /path/to/your/config-template.yaml\n```\n\n\n\u003e [!TIP]\n\u003e `/path/to/your/config-template.yaml` is a configuration file loaded by OpenAOE at startup, \n\u003e which contains the relevant configuration information for the LLMs,\n\u003e including: API URLs, AKSKs, Tokens, etc.\n\u003e A template configuration yaml file can be found in `openaoe/backend/config/config-template.yaml`.\n\u003e Note that, this `config-template.yaml` DOES NOT contain any API access data, you should add them by yourself.\n\n\n#  Tech Report\n\u003e **You are always welcome to fork this project to contribute your work**\n\u003e **and find the [TODOs in furture](docs/todo/TODO.md).**\n\nIf you want to add more LLMs' APIs or features based on OpenAOE, the following info might be helpful.\n\n## Tech Stack\nThe technology stack we use includes:\n\n1. Backend framework based on python + fastapi;\n2. Frontend framework based on typescript + Sealion-Client (encapsulated based on React) + Sealion-UI.\n3. Build tools:\n   1. conda: quickly create a virtual python env to install necessary packages\n   2. npm: build the frontend project\n\n\u003e [!TIP]\n\u003e The build tools can be installed quickly by `pip install -U sealion-cli`\n\n## Organization of the Repo\n- Frontend codes are in `openaoe/frontend`\n- Backend codes are in `openaoe/backend`\n- Project entry-point is `openaoe/main.py`\n\n## How to add a new model\n### Frontend\n- Add new model info like `name`, `avatar`, `provider`, etc in `openaoe/frontend/src/config/model-config.ts`\n- Add a new model basic API request payload configuration in `openaoe/frontend/src/config/api-config.ts`\n- 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.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finternlm%2Fopenaoe","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finternlm%2Fopenaoe","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finternlm%2Fopenaoe/lists"}