Skip to main content

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)

说明

Project details


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.5.tar.gz (15.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

chan_agent-0.0.5-py3-none-any.whl (19.1 kB view details)

Uploaded Python 3

File details

Details for the file chan_agent-0.0.5.tar.gz.

File metadata

  • Download URL: chan_agent-0.0.5.tar.gz
  • Upload date:
  • Size: 15.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.11.11

File hashes

Hashes for chan_agent-0.0.5.tar.gz
Algorithm Hash digest
SHA256 a915c8caa8eb2dc5b7a0c5b645cb6fe175554017d613a171c25adc0b68e7d757
MD5 17f7c8bccb21f8bda67e26a15295c6dd
BLAKE2b-256 5e1893824f45eca75e55457c96a51c5ea7036b19a0e7b159d5713d64e42d6f0f

See more details on using hashes here.

File details

Details for the file chan_agent-0.0.5-py3-none-any.whl.

File metadata

  • Download URL: chan_agent-0.0.5-py3-none-any.whl
  • Upload date:
  • Size: 19.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.11.11

File hashes

Hashes for chan_agent-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 bf91816dddc7958fd2a7863a902dfecf98d8957c41e29e00b0fc5e782529e92b
MD5 ec1d0a31401ed75a149f61716c541989
BLAKE2b-256 d65a46c4fbcde1f27989b5c12916b51da1291cb6cfd429f4977a94fc5b9994d4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page