Skip to main content

A minimalist Python package scaffolded with uv

Project description

oiiai

PyPI version Python versions License: MIT

oiiai 是一个简单的 AI 模型调用工具包,提供模型列表获取和模型调用功能。

特性

  • 🚀 支持多个 AI 提供商的模型列表获取
  • 📦 统一的 API 接口
  • 🛠️ 简单易用的设计
  • 🔧 可扩展的架构

支持的提供商

提供商 模型获取 说明
智谱 AI ✅ ZhipuModelFetcher 从官方文档页面解析模型列表
OpenRouter ✅ OpenRouterModelFetcher 通过 API 获取模型列表
ModelScope ✅ ModelScopeFetcher 通过 API 获取模型列表
SiliconFlow ✅ SiliconFlowFetcher 通过 API 获取模型列表
IFlow ✅ IFlowFetcher 通过 API 获取模型列表

安装

使用 pip

pip install oiiai-lib

使用 uv

uv add oiiai-lib

快速开始

from oiiai import (
    ZhipuModelFetcher,
    OpenRouterModelFetcher,
    ModelScopeFetcher,
    SiliconFlowFetcher,
    IFlowFetcher,
)

# 获取可用模型列表

# 从智谱 AI 获取模型列表
zhipu_fetcher = ZhipuModelFetcher()
zhipu_models = zhipu_fetcher.fetch_models()
print(f"智谱 AI 可用模型: {len(zhipu_models)} 个")

# 从 OpenRouter 获取模型列表
openrouter_fetcher = OpenRouterModelFetcher(api_key="your-api-key")
openrouter_models = openrouter_fetcher.fetch_models()
print(f"OpenRouter 可用模型: {len(openrouter_models)} 个")

# 从 ModelScope 获取模型列表
modelscope_fetcher = ModelScopeFetcher()
modelscope_models = modelscope_fetcher.fetch_models()
print(f"ModelScope 可用模型: {len(modelscope_models)} 个")

# 从 SiliconFlow 获取模型列表
siliconflow_fetcher = SiliconFlowFetcher()
siliconflow_models = siliconflow_fetcher.fetch_models()
print(f"SiliconFlow 可用模型: {len(siliconflow_models)} 个")

# 从 IFlow 获取模型列表
iflow_fetcher = IFlowFetcher()
iflow_models = iflow_fetcher.fetch_models()
print(f"IFlow 可用模型: {len(iflow_models)} 个")

API 参考

基类 ModelFetcher

所有模型获取器的抽象基类。

from oiiai import ModelFetcher

class MyFetcher(ModelFetcher):
    @property
    def provider(self) -> str:
        return "my_provider"
    
    def fetch_models(self) -> List[str]:
        # 实现获取逻辑
        return ["model-1", "model-2"]

OpenRouterModelFetcher

从 OpenRouter API 获取模型列表。

from oiiai import OpenRouterModelFetcher

# 使用 API Key(可选,不传则从环境变量 OPENROUTER_API_KEY 获取)
fetcher = OpenRouterModelFetcher(api_key="your-api-key")

# 获取模型列表
models = fetcher.fetch_models()
print(models)  # ['openai/gpt-4o', 'anthropic/claude-3-opus', ...]

ZhipuModelFetcher

从智谱 AI 官方文档页面解析模型列表。

from oiiai import ZhipuModelFetcher

fetcher = ZhipuModelFetcher()
models = fetcher.fetch_models()
print(models)  # ['glm-4-flash', 'glm-4', ...]

ModelScopeFetcher

从 ModelScope API 获取模型列表。

from oiiai import ModelScopeFetcher

fetcher = ModelScopeFetcher()
models = fetcher.fetch_models()
print(models)  # ['deepseek-ai/DeepSeek-R1-0528', 'Qwen/Qwen2.5-72B-Instruct', ...]

SiliconFlowFetcher

从 SiliconFlow API 获取模型列表。需要设置环境变量 SILICONFLOW_API_KEY

from oiiai import SiliconFlowFetcher

fetcher = SiliconFlowFetcher()
models = fetcher.fetch_models()
print(models)  # ['deepseek-ai/DeepSeek-R1', 'Qwen/Qwen2.5-72B-Instruct', ...]

IFlowFetcher

从 IFlow 平台获取模型列表。

from oiiai import IFlowFetcher

fetcher = IFlowFetcher()
models = fetcher.fetch_models()
print(models)  # ['qwen3-max', 'deepseek-r1', 'kimi-k2', ...]

开发

克隆仓库

git clone https://github.com/weisiren000/oiiai
cd oiiai

安装开发依赖

uv sync --dev

运行测试

uv run pytest

代码格式化

uv run ruff format .
uv run ruff check .

扩展

实现自定义获取器只需继承 ModelFetcher 并实现 provider 属性和 fetch_models() 方法。

许可证

MIT License. 详见 LICENSE 文件。

贡献

欢迎提交 Issue 和 Pull Request!

链接

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

oiiai_lib-0.0.1.tar.gz (82.1 kB view details)

Uploaded Source

Built Distribution

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

oiiai_lib-0.0.1-py3-none-any.whl (9.8 kB view details)

Uploaded Python 3

File details

Details for the file oiiai_lib-0.0.1.tar.gz.

File metadata

  • Download URL: oiiai_lib-0.0.1.tar.gz
  • Upload date:
  • Size: 82.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.10 {"installer":{"name":"uv","version":"0.9.10"},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for oiiai_lib-0.0.1.tar.gz
Algorithm Hash digest
SHA256 42177cdf2fc7679ef70a2cf6d6e68b5c3ee88f69823cc61809dc4ff849d3bf7a
MD5 37bf4ebefcf5bac6190f575025aa5ecc
BLAKE2b-256 99a87a8c67f45fe9724f90d4cd8f1a562e7b8d32e801255cad321485f8a40271

See more details on using hashes here.

File details

Details for the file oiiai_lib-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: oiiai_lib-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 9.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.10 {"installer":{"name":"uv","version":"0.9.10"},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for oiiai_lib-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ad4ece4d9963d22e2ba8cfebadb8ef011d05075b1579c0f992938cc57965bf14
MD5 8498ac03db05f4e14322ee9e9ca02774
BLAKE2b-256 f9bcf23f6a1102b66b727ad1878aa56a072bcf988be1313d94f5056a2c200793

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