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.16.tar.gz (19.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.16-py3-none-any.whl (29.8 kB view details)

Uploaded Python 3

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

Hashes for chan_agent-0.0.16.tar.gz
Algorithm Hash digest
SHA256 5bdd2fdb94bb4dff0c2feec0c54793a4f3f7fa76b943d53bdc92e5e83ed47864
MD5 b3a5b5ceacbf3b57db2cdf0695e8023b
BLAKE2b-256 fe987c3cfc6ea078654e17d16862baacbdc4b5afe501803e8c55c2e1464b22d2

See more details on using hashes here.

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

Hashes for chan_agent-0.0.16-py3-none-any.whl
Algorithm Hash digest
SHA256 cd8d4561b4cd99933c7aae037301cb745a098db1f227fe2a194c18b469032d6f
MD5 d2f12178a5e6320c36287b70f5729251
BLAKE2b-256 bd8fdb64cfa1bb546435dc0d024daf2747932ddb234e32d3e956fa994cb2ebda

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