A simple llm agent
Project description
中文| English
Chan-Agent
一个简洁高效的 Agent 架构,旨在为开发者提供灵活、易用的工具,支持多种 LLM 模型与任务自动化。
特点
- 轻量级:高效且快速,适合多种应用场景。
- 兼容多种 LLM 模型:支持主流的 LLM 模型,灵活配置,方便替换。
- 支持 LLM 任务执行:内置灵活的任务执行功能,可以方便地执行各种 LLM 任务。
- 支持 Agent 执行:支持 Agent 执行任务,并通过协作提升系统的智能化与自动化水平。
安装
通过 pip 安装:
pip install chan-agent
使用示例
初始化LLM
from chan_agent.llms import get_llm
llm = get_llm(
llm_type='openai',
model_name='gpt-4o-mini',
base_url='https://api.openai.com/v1',
api_key='your-api-key'
)
创建任务
from chan_agent.task_llm import TaskLLM
from chan_agent.schema import TaskOutputs, TaskInputItem
class TranslationOutput(TaskOutputs):
translation: str
task = "Translate the following text to French."
rules = ["Keep the original meaning.", "Use formal language."]
task_llm = TaskLLM(llm=llm, task=task, rules=rules, output_model=TranslationOutput)
执行任务
inputs = [
TaskInputItem(key="text", key_name="Text to translate", value="Hello, how are you?")
]
result = task_llm.call(inputs=inputs)
print(result)
使用工具
from chan_agent.llms import get_llm
from chan_agent.base_agent import BaseAgent
from chan_agent.base_tool import BaseTool, ToolResult
from chan_agent.schema import AgentMessage
llm = get_llm(
llm_type='openai',
model_name='gpt-4o-mini',
base_url='https://api.openai.com/v1',
api_key='your-api-key'
)
class WeatherTool(BaseTool):
name = "weather_tool"
description = "A tool that fetches weather information for a given city."
parameters = {
'city': {
'type': 'string',
'description': 'city name',
'required': True
},
}
def call(self, params, **kwargs) -> ToolResult:
city = params.get("city")
# Return a fixed fake weather response
return ToolResult(response=f"The weather in {city} is sunny with a high of 25°C.", use_tool_response=False)
tools = [WeatherTool()]
agent = BaseAgent(llm=llm, role="Assistant", tools=tools, rules=["Be polite."])
messages = []
messages.append(AgentMessage(role="user", content="Hello, can you tell me the weather in New York?"))
response = agent.chat(messages)
print(response)
说明
- 部分代码参考了Qwen-Agent
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
chan_agent-0.0.16.tar.gz
(19.6 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file chan_agent-0.0.16.tar.gz.
File metadata
- Download URL: chan_agent-0.0.16.tar.gz
- Upload date:
- Size: 19.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.11.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5bdd2fdb94bb4dff0c2feec0c54793a4f3f7fa76b943d53bdc92e5e83ed47864
|
|
| MD5 |
b3a5b5ceacbf3b57db2cdf0695e8023b
|
|
| BLAKE2b-256 |
fe987c3cfc6ea078654e17d16862baacbdc4b5afe501803e8c55c2e1464b22d2
|
File details
Details for the file chan_agent-0.0.16-py3-none-any.whl.
File metadata
- Download URL: chan_agent-0.0.16-py3-none-any.whl
- Upload date:
- Size: 29.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.11.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cd8d4561b4cd99933c7aae037301cb745a098db1f227fe2a194c18b469032d6f
|
|
| MD5 |
d2f12178a5e6320c36287b70f5729251
|
|
| BLAKE2b-256 |
bd8fdb64cfa1bb546435dc0d024daf2747932ddb234e32d3e956fa994cb2ebda
|