ai-agent-book 精选快照(<2MB 代码与文档,来自 github.com/bojieli/ai-agent-book)
Build latest book artifacts / build (push) Canceled after 0s
dependency resolution / resolve (3.11) (push) Canceled after 0s
dependency resolution / resolve (3.13) (push) Canceled after 0s
deploy-pages / build (push) Canceled after 0s
deploy-pages / deploy (push) Canceled after 0s
i18n consistency check / check (push) Canceled after 0s
provider adoption tests / test (chapter2/context-compression) (push) Canceled after 0s
provider adoption tests / test (chapter2/prompt-injection) (push) Canceled after 0s
provider adoption tests / test (chapter2/system-hint) (push) Canceled after 0s
provider adoption tests / test (chapter3/log-sanitization) (push) Canceled after 0s
web-search-agent tests / test (push) Canceled after 0s
web-search-agent tests / agentbook (push) Canceled after 0s
Build latest book artifacts / build (push) Canceled after 0s
dependency resolution / resolve (3.11) (push) Canceled after 0s
dependency resolution / resolve (3.13) (push) Canceled after 0s
deploy-pages / build (push) Canceled after 0s
deploy-pages / deploy (push) Canceled after 0s
i18n consistency check / check (push) Canceled after 0s
provider adoption tests / test (chapter2/context-compression) (push) Canceled after 0s
provider adoption tests / test (chapter2/prompt-injection) (push) Canceled after 0s
provider adoption tests / test (chapter2/system-hint) (push) Canceled after 0s
provider adoption tests / test (chapter3/log-sanitization) (push) Canceled after 0s
web-search-agent tests / test (push) Canceled after 0s
web-search-agent tests / agentbook (push) Canceled after 0s
This commit is contained in:
@@ -0,0 +1,158 @@
|
||||
# AworldServer
|
||||
|
||||
AworldServer is an execution environment for the Aworld framework that integrates MCP LLM models. It supports distributed deployment and dynamic scaling.
|
||||
|
||||

|
||||
|
||||
The system features:
|
||||
|
||||
- Distributed Architecture: Supports multi-server deployment with load balancing
|
||||
- Dynamic Scaling: Ability to adjust server capacity based on demand
|
||||
- LLM Integration: Built-in MCP LLM model support
|
||||
- Asynchronous Processing: Uses asynchronous programming patterns for improved performance
|
||||
- Containerized Deployment: Docker containerization support for easy environment management
|
||||
|
||||
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
1. Start services using Docker Compose:
|
||||
|
||||
```sh
|
||||
docker build --build-arg MINIMUM_BUILD=true -f Dockerfile --progress=plain -t aworldserver:main .
|
||||
|
||||
docker compose up -d
|
||||
```
|
||||
2. Configure the number of server instances:
|
||||
|
||||
You can modify the `docker-compose.yaml` file to adjust the number of server instances. The default configuration includes 3 instances:
|
||||
|
||||
3. Usage Methods:
|
||||
|
||||
a. OpenWebUI Integration:
|
||||
- Configure external link in OpenWebUI settings
|
||||
- Add AworldServer endpoints to the configuration
|
||||
- Set up API key authentication
|
||||
|
||||
b. Python Client Usage:
|
||||
```python
|
||||
# Initialize AworldTaskClient with server endpoints
|
||||
AWORLD_TASK_CLIENT = AworldTaskClient(
|
||||
know_hosts=["localhost:9299", "localhost:9399", "localhost:9499"]
|
||||
)
|
||||
|
||||
async def _run_gaia_task(gaia_question_id: str) -> None:
|
||||
"""Run a single Gaia task with the given question ID.
|
||||
|
||||
Args:
|
||||
gaia_question_id: The ID of the question to process
|
||||
"""
|
||||
global AWORLD_TASK_CLIENT
|
||||
task_id = str(uuid.uuid4())
|
||||
|
||||
# Submit task to Aworld server
|
||||
await AWORLD_TASK_CLIENT.submit_task(
|
||||
AworldTask(
|
||||
task_id=task_id,
|
||||
agent_id="gaia_agent",
|
||||
agent_input=gaia_question_id,
|
||||
session_id="session_id",
|
||||
user_id="SYSTEM"
|
||||
)
|
||||
)
|
||||
|
||||
# Get and print task result
|
||||
task_result = await AWORLD_TASK_CLIENT.get_task_state(task_id=task_id)
|
||||
print(task_result)
|
||||
|
||||
async def _batch_run_gaia_task(start_i: int, end_i: int) -> None:
|
||||
"""Run multiple Gaia tasks in parallel.
|
||||
|
||||
Args:
|
||||
start_i: Starting question ID
|
||||
end_i: Ending question ID
|
||||
"""
|
||||
tasks = [
|
||||
_run_gaia_task(str(i))
|
||||
for i in range(start_i, end_i + 1)
|
||||
]
|
||||
await asyncio.gather(*tasks)
|
||||
|
||||
if __name__ == '__main__':
|
||||
# Run batch processing for questions 1-5
|
||||
asyncio.run(_batch_run_gaia_task(1, 5))
|
||||
```
|
||||
c. user curl
|
||||
```shell
|
||||
curl http://localhost:9299/v1/chat/completions \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "Authorization: Bearer 0p3n-w3bu!" \
|
||||
-d '{
|
||||
"model": "gaia_agent",
|
||||
"messages": [
|
||||
{
|
||||
"role": "user",
|
||||
"content": [
|
||||
{
|
||||
"type": "text",
|
||||
"text": "5"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}'
|
||||
|
||||
```
|
||||
|
||||
|
||||
## 🔑 Key Features
|
||||
|
||||
- **Distributed Task Processing System**
|
||||
- Multi-server load balancing
|
||||
- Round-robin task distribution
|
||||
- Asynchronous task processing
|
||||
|
||||
- **Docker Containerization**
|
||||
- Multi-instance deployment
|
||||
- Environment variable configuration
|
||||
- Auto-restart mechanism
|
||||
|
||||
- **API Services**
|
||||
- FastAPI framework support
|
||||
- RESTful API design
|
||||
- Asynchronous request handling
|
||||
|
||||
- **Development Tools**
|
||||
- Debug mode support
|
||||
- Batch task processing
|
||||
- Task state tracking
|
||||
|
||||
- **Security Features**
|
||||
- API key authentication
|
||||
- Session management
|
||||
- User authentication
|
||||
|
||||
|
||||
|
||||
## 📦 Installation and Setup
|
||||
|
||||
Get started with aworldserver in a few easy steps:
|
||||
|
||||
1. **Ensure Python 3.11 is installed.**
|
||||
|
||||
2. **Install the required dependencies:**
|
||||
|
||||
```sh
|
||||
pip install -r requirements-minimux.txt
|
||||
```
|
||||
|
||||
3. **Start the aworld server:**
|
||||
|
||||
```sh
|
||||
sh ./start.sh
|
||||
```
|
||||
### Custom debug
|
||||
|
||||
please run `debug_run.py`
|
||||
|
||||
##
|
||||
Reference in New Issue
Block a user