Skip to main content

A lightweight Python core package for unified AI API access, designed for flexibility and scalability.

Project description

pycorex - AI API統合のための軽量Pythonコアパッケージ

統一されたAI APIアクセスとスケーラブルなアプリケーション構築を支援する軽量Pythonコアパッケージ。

概要

pycorex は、Google Gemini, Imagen, ComfyUI など多様なAI APIおよびライブラリへのアクセスを統合し、スケーラブルなPythonアプリケーションを迅速に構築するための軽量なコア・ユーティリティライブラリです。本パッケージは、プロンプト生成、画像生成、AIモデルとの連携など、複雑なAIワークフローを効率的に管理するための機能を提供します。 アプリケーションの初期化や設定管理については、親プロジェクトである libcore-hnghttps://github.com/kaioman/libcore-hng.git)を参照してください。

主な機能

  • 統一されたAIクライアント: Google Gemini, Imagen, ComfyUI など、主要なAIサービスへの統一されたインターフェースを提供します(随時追加予定)
  • 高度なプロンプト生成: 柔軟なテンプレートと設定に基づいたプロンプト生成機能により、AIモデルの性能を最大限に引き出します。
  • 画像生成ワークフローの管理: ComfyUIとの連携により、複雑な画像生成ワークフローをPythonコードから直接制御できます。
  • 拡張性とモジュール性: 新しいAIサービスや機能を追加しやすいモジュール構造を採用しています。

インストール

pycorexpip を使ってインストールできます。

pip install pycorex

使い方

基本的な使用例を以下に示します。

GeminiClient の使用例

import pycorex.configs.app_init as app
from pycorex.gemini_client import GeminiClient
from pycorex.exceptions.no_candidates_error import NoCandidatesError

# アプリ初期化
app.init_app(__file__, "app_config.json", "gcp_config.json", "pycorex.json.enc")

# GeminiClientを初期化
client = GeminiClient(
    api_key=app.core.config.gemini.api_key_vertexai,
    project_id=app.core.config.vertexai.project_id,
    location=app.core.config.vertexai.location
)

# プロンプトを設定
prompt = "リクルートスーツの女性が居酒屋で酒をあおっている"

# 画像生成を実行 
response = client.generate_image(
    prompt=prompt,
    model=GeminiClient.GeminiModel.GEMINI_3_0_PRO_IMAGE_PREVIEW,
    aspect_ratio=GeminiClient.AspectRatio.SQUARE,
    image_size=GeminiClient.ImageSize.TWO_K,
    harm_category = GeminiClient.HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT,
    safety_filter_level = GeminiClient.SafetyFilterLevel.BLOCK_ONLY_HIGH
)

# 画像ファイルを出力する
for idx, image_bytes in enumerate(response["result"]):
    with open(f"image_{idx}.png", "wb") as f:
        f.write(image_bytes)
    print(f"Saved: image_{idx}.png")

プロンプト生成の例

import pycorex.configs.app_init as app
from pycorex.utils.pony_prompt_generator import PonyPromptGenerator

# アプリ初期化
app.init_app(__file__, "app_config.json", "gcp_config.json", "pycorex.json.enc")

# PonyPromptGeneratorのインスタンスを作成
pony_generator = PonyPromptGenerator(
    persona_path="tests/prompt/pony/persona/Aoi.json",
    camera_path="tests/prompt/pony/camera_angules.json",
    wardrobe_path="tests/prompt/pony/wardrobe.json",
    environment_path="tests/prompt/pony/environments.json"
)

# プロンプトを生成
positive_prompt, negative_prompt, image_width, image_height = self.prompt_generator.generate_prompt(
    level=prompt_level,
    target_scene_id=target_scene_id,
    test_outfit_id=test_outfit_id,
    test_scene_id_override=test_scene_id_override,
    test_camera_name=test_camera_name,
)

print(f"Generated Positive Prompt: {positive_prompt[:100]}...")
print(f"Generated Negative Prompt: {negative_prompt[:100]}...")
print(f"Generated Image Resolution: {image_width}x{image_height}")

開発

リポジトリをクローンし、開発環境をセットアップする方法です。

git clone https://github.com/kaioman/pycorex.git
cd pycorex

貢献

貢献を歓迎します!バグ報告や機能提案、プルリクエストをお待ちしております。

ライセンス

このプロジェクトは BSD-3-Clause ライセンスの下で公開されています。詳細については LICENSE ファイルをご覧ください。

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

pycorex-1.0.21.tar.gz (37.6 kB view details)

Uploaded Source

Built Distribution

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

pycorex-1.0.21-py3-none-any.whl (33.7 kB view details)

Uploaded Python 3

File details

Details for the file pycorex-1.0.21.tar.gz.

File metadata

  • Download URL: pycorex-1.0.21.tar.gz
  • Upload date:
  • Size: 37.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pycorex-1.0.21.tar.gz
Algorithm Hash digest
SHA256 ecdecb54783bcdd5f6aa7a9cb8780daca3ca26ec3dbb2f29099b7d98456d16fd
MD5 c73a38500ca2c96cb825128d1b45f62f
BLAKE2b-256 4530e500d7650c2d9c196a2c414a185ffe61977029aaca6970bfc008f7e5f939

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycorex-1.0.21.tar.gz:

Publisher: release.yml on kaioman/pycorex

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycorex-1.0.21-py3-none-any.whl.

File metadata

  • Download URL: pycorex-1.0.21-py3-none-any.whl
  • Upload date:
  • Size: 33.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pycorex-1.0.21-py3-none-any.whl
Algorithm Hash digest
SHA256 e1b1c916ac5549cb730d073eeb5bd44113c3bd2eb157fa975982fd6de82a38fa
MD5 bb8e5b7bc6ed4548c6e421fd0ec4766e
BLAKE2b-256 b9b92b14115f85668ba114322b92571d381331c15912e67c550710b1b987c415

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycorex-1.0.21-py3-none-any.whl:

Publisher: release.yml on kaioman/pycorex

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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