Skip to main content

NexAgent - AI 对话框架,支持多服务商、多模型切换、深度思考、工具调用、流式输出、多会话管理

Project description

NexAgent

PyPI version Python versions Downloads License Gitee

AI 对话框架,支持多模型切换、多会话管理、工具调用、流式输出。

特性

  • 🔄 多模型切换 - 支持配置多个 AI 模型,运行时切换
  • 💬 多会话管理 - 独立会话上下文,支持创建、切换、删除
  • 🔧 工具调用 - 内置 shell/http 工具,支持自定义扩展
  • 📡 流式输出 - 实时返回生成内容
  • 🗄️ SQLite 存储 - 可靠的本地数据持久化
  • 🌐 WebUI - 开箱即用的聊天界面

安装

pip install nex-agent        # 基础安装
pip install nex-agent[api]   # 包含 API 服务
pip install nex-agent[all]   # 完整安装

快速开始

# 初始化工作目录
nex init

# 启动 Web 服务
nex serve --port 8000

# 在浏览器中打开 http://localhost:8000
# 在设置中添加服务商和模型

工作目录结构

your_project/
├── prompt_config.txt     # 系统提示词
├── nex_data.db           # SQLite 数据库(自动生成,包含模型配置)
└── tools/                # 自定义工具目录
    ├── get_time.json     # 工具定义
    ├── get_time.py       # 工具实现
    └── calculator.py     # 纯 Python 工具

模型配置

模型配置已改为通过 Web 界面管理,存储在 nex_data.db 数据库中。

启动服务后,点击"设置"按钮:

  1. 先添加服务商(如 OpenAI、DeepSeek 等)
  2. 再添加模型,选择对应的服务商

代码使用

from nex_fw import NexFramework

nex = NexFramework(work_dir="./my_project")

# 创建会话
session_id = nex.create_session("测试会话", "user1")

# 对话(指定会话)
reply = nex.chat("user1", "你好", session_id=session_id)

# 流式对话
for chunk in nex.chat_stream("user1", "讲个故事", session_id=session_id):
    print(chunk, end="", flush=True)

# 获取会话列表
sessions = nex.get_sessions()

# 获取会话消息
messages = nex.get_session_messages(session_id)

# 切换模型
nex.switch_model("deepseek")

API 接口

对话

POST /nex/chat
{
  "user": "guest",
  "message": "你好",
  "session_id": 1,    // 可选,不传则自动创建会话
  "stream": true
}

会话管理

GET    /nex/sessions                    # 获取会话列表
POST   /nex/sessions                    # 创建会话
GET    /nex/sessions/{id}               # 获取会话详情
PUT    /nex/sessions/{id}               # 更新会话名称
DELETE /nex/sessions/{id}               # 删除会话
GET    /nex/sessions/{id}/messages      # 获取会话消息
DELETE /nex/sessions/{id}/messages      # 清空会话消息
DELETE /nex/messages/{id}               # 删除单条消息

模型管理

GET  /nex/models          # 获取模型列表
POST /nex/models/switch   # 切换模型

自定义工具

方式1: JSON + Python

tools/get_weather.json:

{
  "name": "get_weather",
  "description": "获取天气信息",
  "parameters": {
    "type": "object",
    "properties": {
      "city": {"type": "string", "description": "城市名"}
    },
    "required": ["city"]
  }
}

tools/get_weather.py:

def execute(args):
    city = args.get("city")
    return f"{city}天气晴朗"

方式2: 纯 Python

tools/calculator.py:

TOOL_DEF = {
    "name": "calculator",
    "description": "计算器",
    "parameters": {
        "type": "object",
        "properties": {
            "expression": {"type": "string"}
        },
        "required": ["expression"]
    }
}

def execute(args):
    return str(eval(args["expression"]))

License

MIT

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

nex_agent-0.3.0.tar.gz (36.0 kB view details)

Uploaded Source

Built Distribution

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

nex_agent-0.3.0-py3-none-any.whl (37.0 kB view details)

Uploaded Python 3

File details

Details for the file nex_agent-0.3.0.tar.gz.

File metadata

  • Download URL: nex_agent-0.3.0.tar.gz
  • Upload date:
  • Size: 36.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.1

File hashes

Hashes for nex_agent-0.3.0.tar.gz
Algorithm Hash digest
SHA256 55b49dd29e8c06da4b050be96599532dfb80399df32c36278fa9ca234f87b783
MD5 8d942c0efeea1a05a1a50795ba25fd51
BLAKE2b-256 15f2eb044cb185ff9acc9b2bad13f2ef9aa051df3e7ce88a5812c1d7a97bb13a

See more details on using hashes here.

File details

Details for the file nex_agent-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: nex_agent-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 37.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.1

File hashes

Hashes for nex_agent-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e5ff9861aae72a1768f96e3bc0bc5e3db4a0177a3d0750102b08606e93559949
MD5 9b20ab9346c9f93191240c95c725b8a3
BLAKE2b-256 95c3d88c719d1e13034c66a0d0ed430e182d5df2383d715e70859ced094d4e69

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