aimanager-hjy


Nameaimanager-hjy JSON
Version 0.3.0 PyPI version JSON
download
home_pagehttps://github.com/hjy/aimanager_hjy
SummaryAI服务管理包 - 统一的AI模型调用接口
upload_time2025-08-18 01:16:23
maintainerNone
docs_urlNone
authorhjy
requires_python>=3.8
licenseNone
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # aimanager_hjy

AI服务管理包 - 统一的AI模型调用接口

## 简介

`aimanager_hjy` 是一个统一的AI服务管理包,提供标准化的AI模型调用接口。它是 `ai_runner_hjy` 的升级版本,采用更规范的命名和更完善的功能。

## 主要功能

- **统一AI调用接口**: 通过 `run_route()` 方法调用各种AI服务
- **配置管理**: 支持多种配置方式(环境变量、配置文件、数据库)
- **文件上传**: 集成OSS存储,支持文件上传和管理
- **数据库连接**: 内置MySQL连接管理
- **错误处理**: 完善的错误处理和重试机制
- **日志记录**: 集成loguru日志系统

## 安装

```bash
pip install aimanager_hjy
```

## 快速开始

### 基本使用

```python
from aimanager_hjy import AIManager

# 初始化AI管理器
ai_manager = AIManager()

# 调用AI服务
result = ai_manager.run_route("dogvoice.analysis.s2", {
    "audio_url": "https://example.com/audio.mp3",
    "user_id": "user_123"
})

print(result)
```

### 配置管理

```python
from aimanager_hjy import get_config

# 获取配置
config = get_config()
print(config.database.host)
print(config.oss.bucket)
```

### 文件上传

```python
from aimanager_hjy import upload_file

# 上传文件到OSS
file_url = upload_file("audio.mp3", "audio/")
print(f"文件已上传到: {file_url}")
```

## 配置说明

### 环境变量配置

```bash
# 数据库配置
DB_HOST=localhost
DB_PORT=3306
DB_NAME=dogvoice
DB_USER=root
DB_PASSWORD=password

# OSS配置
OSS_ACCESS_KEY_ID=your_access_key
OSS_ACCESS_KEY_SECRET=your_secret_key
OSS_ENDPOINT=oss-cn-hangzhou.aliyuncs.com
OSS_BUCKET=your_bucket

# AI服务配置
AI_SERVICE_URL=http://localhost:8000
AI_SERVICE_TIMEOUT=30
```

### 配置文件

创建 `config.yaml` 文件:

```yaml
database:
  host: localhost
  port: 3306
  name: dogvoice
  user: root
  password: password

oss:
  access_key_id: your_access_key
  access_key_secret: your_secret_key
  endpoint: oss-cn-hangzhou.aliyuncs.com
  bucket: your_bucket

ai_service:
  url: http://localhost:8000
  timeout: 30
  retry_count: 3
```

## API参考

### AIManager类

#### `__init__(config_path: str = None)`
初始化AI管理器

#### `run_route(route_name: str, params: dict = None) -> dict`
调用AI服务路由

- `route_name`: 路由名称,如 "dogvoice.analysis.s2"
- `params`: 参数字典

#### `run_once(route_name: str, params: dict = None) -> dict`
执行一次性AI调用

#### `run(route_name: str, params: dict = None) -> dict`
执行AI调用(别名)

### 工具函数

#### `get_config() -> AppConfig`
获取应用配置

#### `get_db_connection() -> Connection`
获取数据库连接

#### `upload_file(file_path: str, prefix: str = "") -> str`
上传文件到OSS

#### `validate_required_fields(data: dict, required_fields: list) -> bool`
验证必需字段

## 迁移指南

### 从 ai_runner_hjy 迁移

```python
# 旧代码
from ai_runner_hjy import AIRunner, run_route

runner = AIRunner()
result = run_route("dogvoice.analysis.s2", params)

# 新代码
from aimanager_hjy import AIManager, run_route

manager = AIManager()
result = run_route("dogvoice.analysis.s2", params)
```

## 开发

### 安装开发依赖

```bash
pip install -e .[dev]
```

### 运行测试

```bash
pytest
```

### 代码格式化

```bash
black aimanager_hjy/
isort aimanager_hjy/
```

## 许可证

MIT License

## 更新日志

### v0.1.0
- 初始版本
- 基于 ai_runner_hjy 重构
- 统一命名规范
- 完善文档和示例

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/hjy/aimanager_hjy",
    "name": "aimanager-hjy",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": null,
    "author": "hjy",
    "author_email": "hjy@example.com",
    "download_url": "https://files.pythonhosted.org/packages/82/f1/d50b42a6d64ab037cf9f425b8f292a3b0de6ff1db85441a1923db14c9f8f/aimanager_hjy-0.3.0.tar.gz",
    "platform": null,
    "description": "# aimanager_hjy\n\nAI\u670d\u52a1\u7ba1\u7406\u5305 - \u7edf\u4e00\u7684AI\u6a21\u578b\u8c03\u7528\u63a5\u53e3\n\n## \u7b80\u4ecb\n\n`aimanager_hjy` \u662f\u4e00\u4e2a\u7edf\u4e00\u7684AI\u670d\u52a1\u7ba1\u7406\u5305\uff0c\u63d0\u4f9b\u6807\u51c6\u5316\u7684AI\u6a21\u578b\u8c03\u7528\u63a5\u53e3\u3002\u5b83\u662f `ai_runner_hjy` \u7684\u5347\u7ea7\u7248\u672c\uff0c\u91c7\u7528\u66f4\u89c4\u8303\u7684\u547d\u540d\u548c\u66f4\u5b8c\u5584\u7684\u529f\u80fd\u3002\n\n## \u4e3b\u8981\u529f\u80fd\n\n- **\u7edf\u4e00AI\u8c03\u7528\u63a5\u53e3**: \u901a\u8fc7 `run_route()` \u65b9\u6cd5\u8c03\u7528\u5404\u79cdAI\u670d\u52a1\n- **\u914d\u7f6e\u7ba1\u7406**: \u652f\u6301\u591a\u79cd\u914d\u7f6e\u65b9\u5f0f\uff08\u73af\u5883\u53d8\u91cf\u3001\u914d\u7f6e\u6587\u4ef6\u3001\u6570\u636e\u5e93\uff09\n- **\u6587\u4ef6\u4e0a\u4f20**: \u96c6\u6210OSS\u5b58\u50a8\uff0c\u652f\u6301\u6587\u4ef6\u4e0a\u4f20\u548c\u7ba1\u7406\n- **\u6570\u636e\u5e93\u8fde\u63a5**: \u5185\u7f6eMySQL\u8fde\u63a5\u7ba1\u7406\n- **\u9519\u8bef\u5904\u7406**: \u5b8c\u5584\u7684\u9519\u8bef\u5904\u7406\u548c\u91cd\u8bd5\u673a\u5236\n- **\u65e5\u5fd7\u8bb0\u5f55**: \u96c6\u6210loguru\u65e5\u5fd7\u7cfb\u7edf\n\n## \u5b89\u88c5\n\n```bash\npip install aimanager_hjy\n```\n\n## \u5feb\u901f\u5f00\u59cb\n\n### \u57fa\u672c\u4f7f\u7528\n\n```python\nfrom aimanager_hjy import AIManager\n\n# \u521d\u59cb\u5316AI\u7ba1\u7406\u5668\nai_manager = AIManager()\n\n# \u8c03\u7528AI\u670d\u52a1\nresult = ai_manager.run_route(\"dogvoice.analysis.s2\", {\n    \"audio_url\": \"https://example.com/audio.mp3\",\n    \"user_id\": \"user_123\"\n})\n\nprint(result)\n```\n\n### \u914d\u7f6e\u7ba1\u7406\n\n```python\nfrom aimanager_hjy import get_config\n\n# \u83b7\u53d6\u914d\u7f6e\nconfig = get_config()\nprint(config.database.host)\nprint(config.oss.bucket)\n```\n\n### \u6587\u4ef6\u4e0a\u4f20\n\n```python\nfrom aimanager_hjy import upload_file\n\n# \u4e0a\u4f20\u6587\u4ef6\u5230OSS\nfile_url = upload_file(\"audio.mp3\", \"audio/\")\nprint(f\"\u6587\u4ef6\u5df2\u4e0a\u4f20\u5230: {file_url}\")\n```\n\n## \u914d\u7f6e\u8bf4\u660e\n\n### \u73af\u5883\u53d8\u91cf\u914d\u7f6e\n\n```bash\n# \u6570\u636e\u5e93\u914d\u7f6e\nDB_HOST=localhost\nDB_PORT=3306\nDB_NAME=dogvoice\nDB_USER=root\nDB_PASSWORD=password\n\n# OSS\u914d\u7f6e\nOSS_ACCESS_KEY_ID=your_access_key\nOSS_ACCESS_KEY_SECRET=your_secret_key\nOSS_ENDPOINT=oss-cn-hangzhou.aliyuncs.com\nOSS_BUCKET=your_bucket\n\n# AI\u670d\u52a1\u914d\u7f6e\nAI_SERVICE_URL=http://localhost:8000\nAI_SERVICE_TIMEOUT=30\n```\n\n### \u914d\u7f6e\u6587\u4ef6\n\n\u521b\u5efa `config.yaml` \u6587\u4ef6\uff1a\n\n```yaml\ndatabase:\n  host: localhost\n  port: 3306\n  name: dogvoice\n  user: root\n  password: password\n\noss:\n  access_key_id: your_access_key\n  access_key_secret: your_secret_key\n  endpoint: oss-cn-hangzhou.aliyuncs.com\n  bucket: your_bucket\n\nai_service:\n  url: http://localhost:8000\n  timeout: 30\n  retry_count: 3\n```\n\n## API\u53c2\u8003\n\n### AIManager\u7c7b\n\n#### `__init__(config_path: str = None)`\n\u521d\u59cb\u5316AI\u7ba1\u7406\u5668\n\n#### `run_route(route_name: str, params: dict = None) -> dict`\n\u8c03\u7528AI\u670d\u52a1\u8def\u7531\n\n- `route_name`: \u8def\u7531\u540d\u79f0\uff0c\u5982 \"dogvoice.analysis.s2\"\n- `params`: \u53c2\u6570\u5b57\u5178\n\n#### `run_once(route_name: str, params: dict = None) -> dict`\n\u6267\u884c\u4e00\u6b21\u6027AI\u8c03\u7528\n\n#### `run(route_name: str, params: dict = None) -> dict`\n\u6267\u884cAI\u8c03\u7528\uff08\u522b\u540d\uff09\n\n### \u5de5\u5177\u51fd\u6570\n\n#### `get_config() -> AppConfig`\n\u83b7\u53d6\u5e94\u7528\u914d\u7f6e\n\n#### `get_db_connection() -> Connection`\n\u83b7\u53d6\u6570\u636e\u5e93\u8fde\u63a5\n\n#### `upload_file(file_path: str, prefix: str = \"\") -> str`\n\u4e0a\u4f20\u6587\u4ef6\u5230OSS\n\n#### `validate_required_fields(data: dict, required_fields: list) -> bool`\n\u9a8c\u8bc1\u5fc5\u9700\u5b57\u6bb5\n\n## \u8fc1\u79fb\u6307\u5357\n\n### \u4ece ai_runner_hjy \u8fc1\u79fb\n\n```python\n# \u65e7\u4ee3\u7801\nfrom ai_runner_hjy import AIRunner, run_route\n\nrunner = AIRunner()\nresult = run_route(\"dogvoice.analysis.s2\", params)\n\n# \u65b0\u4ee3\u7801\nfrom aimanager_hjy import AIManager, run_route\n\nmanager = AIManager()\nresult = run_route(\"dogvoice.analysis.s2\", params)\n```\n\n## \u5f00\u53d1\n\n### \u5b89\u88c5\u5f00\u53d1\u4f9d\u8d56\n\n```bash\npip install -e .[dev]\n```\n\n### \u8fd0\u884c\u6d4b\u8bd5\n\n```bash\npytest\n```\n\n### \u4ee3\u7801\u683c\u5f0f\u5316\n\n```bash\nblack aimanager_hjy/\nisort aimanager_hjy/\n```\n\n## \u8bb8\u53ef\u8bc1\n\nMIT License\n\n## \u66f4\u65b0\u65e5\u5fd7\n\n### v0.1.0\n- \u521d\u59cb\u7248\u672c\n- \u57fa\u4e8e ai_runner_hjy \u91cd\u6784\n- \u7edf\u4e00\u547d\u540d\u89c4\u8303\n- \u5b8c\u5584\u6587\u6863\u548c\u793a\u4f8b\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "AI\u670d\u52a1\u7ba1\u7406\u5305 - \u7edf\u4e00\u7684AI\u6a21\u578b\u8c03\u7528\u63a5\u53e3",
    "version": "0.3.0",
    "project_urls": {
        "Homepage": "https://github.com/hjy/aimanager_hjy"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "2a5cc5dd0027440c6ccc7d88ae7021b2063b5cf696d7152056f71be8ec57bbc4",
                "md5": "4aeb8d99715eea26244e3f4574adde18",
                "sha256": "d4b463256bfdc87aa65f444694b620c5b07da4d0c580bdbe1af898a6cd42bb16"
            },
            "downloads": -1,
            "filename": "aimanager_hjy-0.3.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "4aeb8d99715eea26244e3f4574adde18",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 14317,
            "upload_time": "2025-08-18T01:16:21",
            "upload_time_iso_8601": "2025-08-18T01:16:21.861136Z",
            "url": "https://files.pythonhosted.org/packages/2a/5c/c5dd0027440c6ccc7d88ae7021b2063b5cf696d7152056f71be8ec57bbc4/aimanager_hjy-0.3.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "82f1d50b42a6d64ab037cf9f425b8f292a3b0de6ff1db85441a1923db14c9f8f",
                "md5": "7eed283554d92a94de8b0104c4a9854b",
                "sha256": "a6d34eb3f0115487382a441e01e86537903854eac5e603b7f53cfe3d844b5a61"
            },
            "downloads": -1,
            "filename": "aimanager_hjy-0.3.0.tar.gz",
            "has_sig": false,
            "md5_digest": "7eed283554d92a94de8b0104c4a9854b",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 12728,
            "upload_time": "2025-08-18T01:16:23",
            "upload_time_iso_8601": "2025-08-18T01:16:23.564571Z",
            "url": "https://files.pythonhosted.org/packages/82/f1/d50b42a6d64ab037cf9f425b8f292a3b0de6ff1db85441a1923db14c9f8f/aimanager_hjy-0.3.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-18 01:16:23",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "hjy",
    "github_project": "aimanager_hjy",
    "github_not_found": true,
    "lcname": "aimanager-hjy"
}
        
hjy
Elapsed time: 0.95902s