Pure Python Based Agents for Large Language Models
Project description
ChatAgent
A Python-based large language model agent framework. The online agents deployed through ChatAgent have provided over a million stable API calls for the internal OpenRL team.
Features
- Supports multimodal large language models
- Supports OpenAI API
- Supports API calls to Qwen on Alibaba Cloud, Zhipu AI's GLM, Microsoft Azure, etc.
- Supports parallel and sequential calls of different agents
- Supports adding an api key for access control
- Supports setting a maximum number of concurrent requests, i.e., the maximum number of requests a model can handle at the same time
- Supports customizing complex agent interaction strategies
Installation
pip install ChatAgent-py
Usage
We provide some examples in the examples
directory, which you can run them directly to explore ChatAgent's abilities.
1. Example for Qwen/ZhiPu API to OpenAI API
With just over a dozen lines of code, you can convert the Qwen/ZhiPu API to the OpenAI API. For specific code and test cases, please refer to examples/qwen2openai and examples/glm2openai.
import os
from ChatAgent import serve
from ChatAgent.chat_models.base_chat_model import BaseChatModel
from ChatAgent.agents.dashscope_chat_agent import DashScopeChatAgent
from ChatAgent.protocol.openai_api_protocol import MultimodalityChatCompletionRequest
class QwenMax(BaseChatModel):
def init_agent(self):
self.agent = DashScopeChatAgent(model_name='qwen-max',api_key=os.getenv("QWEN_API_KEY"))
def create_chat_completion(self, request):
return self.agent.act(request)
@serve.create_chat_completion()
async def implement_completions(request: MultimodalityChatCompletionRequest):
return QwenMax().create_chat_completion(request)
serve.run(host="0.0.0.0", port=6367)
2. Ensemble with Multiple Agents
We provide an example in examples/multiagent_ensemble where multiple agents perform ensemble to answer user questions.
3. Agent Q&A Based on RAG Query Results
We provide an example in examples/rag of agent Q&A based on RAG query results.
Citation
If you use ChatAgent, please cite us:
@misc{ChatAgent2024,
title={ChatAgent},
author={Shiyu Huang},
publisher = {GitHub},
howpublished = {\url{https://github.com/OpenRL-Lab/ChatAgent}},
year={2024},
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file ChatAgent-py-0.0.1.tar.gz
.
File metadata
- Download URL: ChatAgent-py-0.0.1.tar.gz
- Upload date:
- Size: 24.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5bc3c94f59fed60b11273d77402ceced170155a7f25665ce585c5abfcba49e3f |
|
MD5 | 0f0a70aba3aba99ce2bfa1300634fa4d |
|
BLAKE2b-256 | aaa21733e69bb29a55567024fdb253cec10bead4e2f2e218cc321bdb1ba001a8 |
File details
Details for the file ChatAgent_py-0.0.1-py3-none-any.whl
.
File metadata
- Download URL: ChatAgent_py-0.0.1-py3-none-any.whl
- Upload date:
- Size: 52.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c3e9b30d8a2e76b2a130e6453fc8338a98e10e09fc2096e5a980d695883471d8 |
|
MD5 | bb3ac4b7f70c8860fb629c3809fa86a2 |
|
BLAKE2b-256 | f31a1146216044655efb9e79a708c23058f806fc205f8b2d4ff52a101eeb7b6e |