暗号資産やFX取引において、損益管理は生命線です。私は以前、強平ライン( liquidation price )の計算を誤ってポジションが強制決済され、予定外の損失を出した経験があります。本稿では、HolySheep AI のAPIを活用したAI驅動型のリスク管理システムを構築し、強平データを基にした自動損益計算と止损点位の自動算出整套方案をご紹介します。
强平データとは
强平データとは、暗号資産取引における強制決済価格の情報を指し、以下の要素を含みます:
- 現在の価格(マークプライス)
- 清算价格( Liquidation Price )
- 保证金余额( Margin Balance )
- 维持保证金率( Maintenance Margin Rate )
- 借入金金额( Borrowed Amount )
これらのデータをリアルタイムで取得し、AI模型に活用させることで、楕円形なリスク評価と最適な止损点位の自動計算が可能になります。
システムアーキテクチャ
本システムは3つの主要コンポーネントで構成されます:
- データ収集层:取引所のリアルタイムデータを取得
- AI分析层:HolySheep AI APIでリスク評価と止损计算
- 执行层:注文の自動執行と通知
前提条件と環境構築
まず、必要なライブラリをインストールします:
# 必要なライブラリのインストール
pip install requests asyncio aiohttp pandas numpy
HolySheep AI SDK(現在準備中)- REST APIで直接通信可能
pip install websockets
次に、プロジェクト構造を作成します:
# プロジェクト構造
risk_management/
├── config.py # 設定ファイル
├── data_collector.py # データ収集モジュール
├── ai_analyzer.py # AI分析モジュール(HolySheep API)
├── risk_calculator.py # リスク計算モジュール
├── executor.py # 执行モジュール
├── main.py # メインエントリーポイント
└── requirements.txt # 依存関係
設定ファイル(config.py)
# config.py
import os
HolySheep AI API 設定
登録は https://www.holysheep.ai/register から
HOLYSHEEP_API_KEY = os.getenv("HOLYSHEEP_API_KEY", "YOUR_HOLYSHEEP_API_KEY")
HOLYSHEEP_BASE_URL = "https://api.holysheep.ai/v1"
取引設定
SYMBOL = "BTC/USDT"
LEVERAGE = 10 # レバレッジ倍率
MAX_POSITION_SIZE = 0.1 # 最大ポジジョンサイズ(BTC)
RISK_PERCENTAGE = 2.0 # リスク許容度(%)- 口座残高の2%
止损設定
STOP_LOSS_BUFFER = 0.5 # 强平ラインからの缓冲(%)
MIN_STOP_LOSS = 1.0 # 最小止损幅(%)
MAX_STOP_LOSS = 5.0 # 最大止损幅(%)
通知設定
ENABLE_TELEGRAM = True
TELEGRAM_BOT_TOKEN = os.getenv("TELEGRAM_BOT_TOKEN")
TELEGRAM_CHAT_ID = os.getenv("TELEGRAM_CHAT_ID")
AI分析モジュール(HolySheep API統合)
# ai_analyzer.py
import requests
import json
from typing import Dict, Optional, List
from dataclasses import dataclass
@dataclass
class RiskAnalysis:
recommended_stop_loss: float
risk_score: float
market_sentiment: str
volatility_index: float
ai_confidence: float
class HolySheepAIAnalyzer:
"""HolySheep AI API用于リスク分析と损益预测"""
def __init__(self, api_key: str):
self.api_key = api_key
self.base_url = "https://api.holysheep.ai/v1"
self.headers = {
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json"
}
def analyze_risk(
self,
symbol: str,
entry_price: float,
current_price: float,
liquidation_price: float,
position_size: float,
market_data: Dict
) -> RiskAnalysis:
"""
强平データと市場データを基にAI驅動のリスク分析を実行
"""
# HolySheep AIに送信するプロンプト構築
prompt = self._build_risk_prompt(
symbol, entry_price, current_price,
liquidation_price, position_size, market_data
)
try:
response = self._call_holysheep_api(prompt)
return self._parse_analysis(response)
except requests.exceptions.Timeout:
# タイムアウト時のフォールバック処理
return self._fallback_analysis(
entry_price, liquidation_price, position_size
)
def _build_risk_prompt(
self, symbol: str, entry_price: float,
current_price: float, liquidation_price: float,
position_size: float, market_data: Dict
) -> str:
"""HolySheep AI APIに送信する分析プロンプトを生成"""
distance_to_liquidation = (
(current_price - liquidation_price) / current_price * 100
)
prompt = f"""あなたは专业的リスク管理AIです。
以下の暗号通貨取引のリスクを分析し、最適な止损点位を提案してください:
【取引情報】
- 銘柄: {symbol}
- エントリー価格: ${entry_price:,.2f}
- 現在価格: ${current_price:,.2f}
- 强平价格: ${liquidation_price:,.2f}
- ポジションサイズ: {position_size} 契約
- 强平までの距離: {distance_to_liquidation:.2f}%
【市場データ】
{json.dumps(market_data, indent=2)}
【分析要件】
1. 推奨される止损点位(価格と%)
2. リスクスコア(0-100)
3. 市場センチメント(強気/中立/弱気)
4. ボラティリティ指数
5. AI確信度
必ずJSON形式で回答してください。"""
return prompt
def _call_holysheep_api(self, prompt: str) -> Dict:
"""HolySheep AI Chat Completions API调用"""
endpoint = f"{self.base_url}/chat/completions"
payload = {
"model": "gpt-4.1", # $8/MTok - 高精度分析に最適
"messages": [
{
"role": "system",
"content": "你是一个专业的加密货币风险管理专家。"
},
{
"role": "user",
"content": prompt
}
],
"temperature": 0.3, # 低温度で一貫した分析結果
"max_tokens": 500
}
response = requests.post(
endpoint,
headers=self.headers,
json=payload,
timeout=10 # 10秒タイムアウト
)
if response.status_code == 401:
raise Exception("API認証エラー: APIキーを確認してください")
elif response.status_code == 429:
raise Exception("レートリミット超過: 少し時間を空けて再試行してください")
elif response.status_code != 200:
raise Exception(f"APIエラー: {response.status_code} - {response.text}")
return response.json()
def _parse_analysis(self, response: Dict) -> RiskAnalysis:
"""APIレスポンスをRiskAnalysisオブジェクトにパース"""
content = response["choices"][0]["message"]["content"]
# JSON部分を抽出(バックティックに包まれた部分を優先)
if "```json" in content:
json_str = content.split("``json")[1].split("``")[0]
elif "```" in content:
json_str = content.split("``")[1].split("``")[0]
else:
# JSON形式が直接返された場合
json_str = content
data = json.loads(json_str)
return RiskAnalysis(
recommended_stop_loss=data["recommended_stop_loss"],
risk_score=data["risk_score"],
market_sentiment=data["market_sentiment"],
volatility_index=data["volatility_index"],
ai_confidence=data["ai_confidence"]
)
def _fallback_analysis(
self, entry_price: float,
liquidation_price: float,
position_size: float
) -> RiskAnalysis:
"""HolySheep AIへの接続失敗時のフォールバック計算"""
# 强平価格の2%下に止损を設定
fallback_stop_loss = liquidation_price * 1.02
return RiskAnalysis(
recommended_stop_loss=fallback_stop_loss,
risk_score=75.0,
market_sentiment="中立(データ取得エラー)",
volatility_index=0.5,
ai_confidence=0.3
)
def get_market_sentiment(self, symbol: str) -> Dict:
"""市場センチメント分析(追加機能)"""
prompt = f"""分析 {symbol} の現在の市場センチメント。
過去の価格データ、出来高トレンド、オーダーブックの状態から
強気・中立・弱気の判断とその根拠を述べてください。"""
endpoint = f"{self.base_url}/chat/completions"
payload = {
"model": "gpt-4.1",
"messages": [{"role": "user", "content": prompt}],
"temperature": 0.5,
"max_tokens": 300
}
response = requests.post(
endpoint,
headers=self.headers,
json=payload,
timeout=10
)
return response.json()
損益計算モジュール
# risk_calculator.py
from typing import Tuple, Optional
from dataclasses import dataclass
@dataclass
class PnLCalculation:
unrealized_pnl: float
unrealized_pnl_percent: float
liquidation_distance: float
liquidation_distance_percent: float
risk_reward_ratio: float
break_even_price: float
class RiskCalculator:
"""强平データ 기반 损益計算と风险评估"""
def __init__(self, leverage: int = 10):
self.leverage = leverage
def calculate_pnl(
self,
position_side: str, # "LONG" or "SHORT"
entry_price: float,
current_price: float,
position_size: float
) -> PnLCalculation:
"""
ポジションの未実現損益を計算
position_side: "LONG" または "SHORT"
"""
if position_side == "LONG":
pnl = (current_price - entry_price) * position_size
pnl_percent = (current_price / entry_price - 1) * 100
else: # SHORT
pnl = (entry_price - current_price) * position_size
pnl_percent = (entry_price / current_price - 1) * 100
# レバレッジ適用後の損益
leveraged_pnl = pnl * self.leverage
return PnLCalculation(
unrealized_pnl=leveraged_pnl,
unrealized_pnl_percent=pnl_percent * self.leverage,
liquidation_distance=0, # 別途計算
liquidation_distance_percent=0,
risk_reward_ratio=0,
break_even_price=entry_price
)
def calculate_liquidation_price(
self,
position_side: str,
entry_price: float,
position_size: float,
margin_balance: float,
maintenance_margin_rate: float = 0.005,
funding_rate: float = 0.0001
) -> float:
"""
强平价格を計算
Parameters:
- position_side: "LONG" または "SHORT"
- entry_price: エントリー価格
- position_size: ポジションサイズ
- margin_balance: 証拠金残高
- maintenance_margin_rate: 維持証拠金率(デフォルト0.5%)
- funding_rate: ファンディングレート
"""
position_value = entry_price * position_size
if position_side == "LONG":
# ロング позиций の强平価格
liquidation_price = (
entry_price * (
1 - 1 / self.leverage + maintenance_margin_rate
)
)
else: # SHORT
# ショート позиций の强平価格
liquidation_price = (
entry_price * (
1 + 1 / self.leverage - maintenance_margin_rate
)
)
return liquidation_price
def calculate_stop_loss(
self,
position_side: str,
entry_price: float,
liquidation_price: float,
buffer_percent: float = 0.5,
min_stop_loss_pct: float = 1.0,
max_stop_loss_pct: float = 5.0
) -> Tuple[float, float]:
"""
强平データを基に止损点位を計算
Returns:
- (止损価格, 止损までの%)
"""
if position_side == "LONG":
# ロング:エントリー価格より下で、强平価格より上で設定
max_stop_distance = entry_price - liquidation_price
stop_loss_pct = min(
max(entry_price * min_stop_loss_pct / 100, max_stop_distance * (1 - buffer_percent / 100)),
entry_price * max_stop_loss_pct / 100
)
stop_loss_price = entry_price - stop_loss_pct
else: # SHORT
# ショート:エントリー価格より上で、强平価格より下で設定
max_stop_distance = liquidation_price - entry_price
stop_loss_pct = min(
max(entry_price * min_stop_loss_pct / 100, max_stop_distance * (1 - buffer_percent / 100)),
entry_price * max_stop_loss_pct / 100
)
stop_loss_price = entry_price + stop_loss_pct
return stop_loss_price, (stop_loss_pct / entry_price * 100)
def calculate_take_profit(
self,
position_side: str,
entry_price: float,
stop_loss_price: float,
risk_reward_ratio: float = 2.0
) -> Tuple[float, float]:
"""
リスク・リワード比から利益確定目標を計算
"""
risk = abs(entry_price - stop_loss_price)
reward = risk * risk_reward_ratio
if position_side == "LONG":
take_profit_price = entry_price + reward
else:
take_profit_price = entry_price - reward
profit_percent = abs(reward / entry_price * 100)
return take_profit_price, profit_percent
def calculate_risk_metrics(
self,
account_balance: float,
position_size: float,
stop_loss_price: float,
entry_price: float,
position_side: str
) -> dict:
"""
包括的なリスク指標を計算
"""
if position_side == "LONG":
loss_per_unit = entry_price - stop_loss_price
else:
loss_per_unit = stop_loss_price - entry_price
total_loss = loss_per_unit * position_size
risk_percentage = (total_loss / account_balance) * 100
return {
"risk_amount": total_loss,
"risk_percentage": risk_percentage,
"max_loss_per_trade": 2.0, # %で設定
"position_sizing_ok": risk_percentage <= 2.0,
"recommended_size": account_balance * 0.02 / loss_per_unit if loss_per_unit > 0 else 0
}
メインモジュール(リアルタイム監視)
# main.py
import asyncio
import json
import logging
from datetime import datetime
from data_collector import ExchangeDataCollector
from ai_analyzer import HolySheepAIAnalyzer
from risk_calculator import RiskCalculator
from executor import OrderExecutor
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(levelname)s - %(message)s'
)
logger = logging.getLogger(__name__)
class RiskManagementSystem:
"""AI驅動型リアルタイムリスク管理系统"""
def __init__(self, config):
self.config = config
self.ai_analyzer = HolySheepAIAnalyzer(config.HOLYSHEEP_API_KEY)
self.calculator = RiskCalculator(leverage=config.LEVERAGE)
self.data_collector = ExchangeDataCollector(config.SYMBOL)
self.executor = OrderExecutor()
self.current_position = None
self.stop_loss_order = None
async def start_monitoring(self):
"""リアルタイム監視開始"""
logger.info("リスク管理システムの監視を開始...")
try:
async for market_data in self.data_collector.stream_data():
await self.process_market_update(market_data)
except KeyboardInterrupt:
logger.info("システムを停止...")
except Exception as e:
logger.error(f"監視エラー: {e}")
# エラー時はフォールバックでポジション決済
await self.emergency_close()
async def process_market_update(self, market_data: dict):
"""市場データの更新を処理"""
current_price = market_data["price"]
# ポジションがない場合は新規エントリー判断
if not self.current_position:
await self.evaluate_entry(current_price, market_data)
return
# ポジションがある場合は損益管理
entry_price = self.current_position["entry_price"]
position_side = self.current_position["side"]
position_size = self.current_position["size"]
# 損益計算
pnl = self.calculator.calculate_pnl(
position_side, entry_price, current_price, position_size
)
logger.info(f"""
=== ポジション状況 ===
銘柄: {self.config.SYMBOL}
現在価格: ${current_price:,.2f}
エントリー: ${entry_price:,.2f}
未実現損益: ${pnl.unrealized_pnl:,.2f} ({pnl.unrealized_pnl_percent:.2f}%)
""")
# AI驅動リスク分析(HolySheep API)
liquidation_price = self.calculator.calculate_liquidation_price(
position_side, entry_price, position_size,
self.current_position.get("margin_balance", 1000)
)
risk_analysis = await self.analyze_with_ai(
current_price, liquidation_price, market_data
)
# 止损点位の動的更新
if self.should_update_stop_loss(risk_analysis, current_price):
await self.update_stop_loss(
position_side, entry_price, current_price,
liquidation_price, risk_analysis
)
# 紧急時決済判断
if self.should_emergency_exit(current_price, liquidation_price):
await self.emergency_close()
async def analyze_with_ai(
self, current_price: float,
liquidation_price: float,
market_data: dict
) -> dict:
"""HolySheep AIでリスク分析を実行"""
try:
analysis = self.ai_analyzer.analyze_risk(
symbol=self.config.SYMBOL,
entry_price=self.current_position["entry_price"],
current_price=current_price,
liquidation_price=liquidation_price,
position_size=self.current_position["size"],
market_data=market_data
)
logger.info(f"""
=== AIリスク分析結果 ===
推奨止损: ${analysis.recommended_stop_loss:,.2f}
リスクスコア: {analysis.risk_score}/100
市場センチメント: {analysis.market_sentiment}
AI確信度: {analysis.ai_confidence:.2f}
""")
return {
"stop_loss": analysis.recommended_stop_loss,
"risk_score": analysis.risk_score,
"sentiment": analysis.market_sentiment,
"confidence": analysis.ai_confidence
}
except Exception as e:
logger.warning(f"AI分析エラー(フォールバック適用): {e}")
# フォールバック:强平价格の2%上に止损
return {
"stop_loss": liquidation_price * 1.02,
"risk_score": 75,
"sentiment": "中立",
"confidence": 0.3
}
def should_update_stop_loss(self, analysis: dict, current_price: float) -> bool:
"""止损更新が必要か判断"""
if not self.stop_loss_order:
return True
current_stop = self.stop_loss_order["price"]
new_stop = analysis["stop_loss"]
# AI確信度が高く、現在の止损より良ければ更新
if analysis["confidence"] > 0.7:
if self.current_position["side"] == "LONG":
return new_stop > current_stop # ロングは上に移動
else:
return new_stop < current_stop # ショートは下に移動
return False
async def update_stop_loss(
self, position_side: str, entry_price: float,
current_price: float, liquidation_price: float,
analysis: dict
):
"""止损注文を更新"""
new_stop_loss = analysis["stop_loss"]
logger.info(f"止损点位を更新: ${new_stop_loss:,.2f}")
# 既存の止损注文をキャンセル(新规注文)
if self.stop_loss_order:
await self.executor.cancel_order(self.stop_loss_order["order_id"])
# 新規止损注文執行
order = await self.executor.place_stop_loss_order(
symbol=self.config.SYMBOL,
side="SELL" if position_side == "LONG" else "BUY",
stop_price=new_stop_loss,
quantity=self.current_position["size"]
)
self.stop_loss_order = {
"order_id": order["order_id"],
"price": new_stop_loss,
"timestamp": datetime.now()
}
logger.info(f"止损注文執行完了: {order}")
def should_emergency_exit(self, current_price: float, liquidation_price: float) -> bool:
"""緊急退出が必要か判断"""
if self.current_position["side"] == "LONG":
return current_price <= liquidation_price * 1.01
else:
return current_price >= liquidation_price * 0.99
async def emergency_close(self):
"""紧急时全ポジション決済"""
logger.warning("紧急退出を実行...")
if self.current_position:
await self.executor.market_close(
symbol=self.config.SYMBOL,
quantity=self.current_position["size"]
)
logger.info("ポジション緊急決済完了")
self.current_position = None
self.stop_loss_order = None
async def evaluate_entry(self, current_price: float, market_data: dict):
"""エントリー条件の評価"""
# AI分析でエントリー判断
sentiment = self.ai_analyzer.get_market_sentiment(self.config.SYMBOL)
if "強気" in sentiment or "bullish" in sentiment.lower():
logger.info("上昇トレンド検出 - ロングエントリー準備")
# エントリーロジック(省略)
async def main():
"""メインエントリーポイント"""
import config
system = RiskManagementSystem(config)
await system.start_monitoring()
if __name__ == "__main__":
asyncio.run(main())
向いている人・向いていない人
| 这样的人 | 这样的人 |
|---|---|
| 暗号資産の自動取引システムを構築したい開発者 | 手動取引を好む保守的な投資家 |
| 强平リスクを高精度で管理したい人 | 高頻度取引(HFT)を行うプロフェッショナル |
| AI驅動の意思決定を取引に導入したい人 | 複雑なシステム構築に時間がかけられない人 |
| HolySheep AIの先進的な機能を活用したい人 | 低い取引コスト最優先の人 |
| バックテスト环境中で戦略検証したい人 | 独自のLLMモデルを持ちたい人 |
価格とROI
HolySheep AIの料金体系は取引コストの大幅な削減を実現します:
| モデル | Output価格($/MTok) | 特徴 | 推奨用途 |
|---|---|---|---|
| GPT-4.1 | $8.00 | 最高精度の分析 | リスク評価・複雑な判断 |
| Claude Sonnet 4.5 | $15.00 | 高い理解力 | 市場分析レポート |
| Gemini 2.5 Flash | $2.50 | 高速・低成本 | リアルタイム監視 |
| DeepSeek V3.2 | $0.42 | 最安値 | 大量データ処理 |
コスト比較:公式レートは¥7.3=$1のところ、HolySheep AIは¥1=$1(85%節約)。毎日100万トークンを処理する場合、月間で約$6のコストで運用可能です(Gemini 2.5 Flash使用時)。
HolySheepを選ぶ理由
- 業界最安水準のコスト:¥1=$1の固定レートで、DeepSeek V3.2なら$0.42/MTok
- 超低レイテンシ:<50msの応答速度でリアルタイム取引に対応
- 多样的決済手段:WeChat Pay・Alipay対応で中国本土からの支払いも容易
- 無料クレジット:新規登録で無料クレジット付与
- マルチモデル対応:GPT-4.1、Claude、Gemini、DeepSeekを单一APIで切り替え可能
よくあるエラーと対処法
エラー1:ConnectionError: timeout
# 症状:APIリクエストがタイムアウトする
原因:ネットワーク不安定またはHolySheep APIの遅延
解決策:リクエスト設定の最適化
import requests
from requests.adapters import HTTPAdapter
from urllib3.util.retry import Retry
def create_session_with_retry():
session = requests.Session()
retry_strategy = Retry(
total=3, # 最大3回再試行
backoff_factor=1, # 指数バックオフ
status_forcelist=[429, 500, 502, 503, 504],
)
adapter = HTTPAdapter(max_retries=retry_strategy)
session.mount("https://", adapter)
return session
使用例
session = create_session_with_retry()
response = session.post(
f"{HOLYSHEEP_BASE_URL}/chat/completions",
headers=headers,
json=payload,
timeout=(5, 15) # (接続タイムアウト, 読み取りタイムアウト)
)
エラー2:401 Unauthorized
# 症状:API呼び出し時に401エラー
原因:APIキーが無効または期限切れ
解決策:APIキーの確認と環境変数設定
import os
環境変数からAPIキーを安全に取得
api_key = os.environ.get("HOLYSHEEP_API_KEY")
if not api_key or api_key == "YOUR_HOLYSHEEP_API_KEY":
# テスト用または開発用のフォールバック
# 本番では必ず有効なAPIキーを設定してください
api_key = "YOUR_HOLYSHEEP_API_KEY"
print("警告: テスト用のAPIキーを使用中")
ヘッダーの正しい設定
headers = {
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json"
}
APIキーの検証
def verify_api_key(api_key: str) -> bool:
"""APIキーの有効性を検証"""
response = requests.get(
"https://api.holysheep.ai/v1/models",
headers={"Authorization": f"Bearer {api_key}"}
)
return response.status_code == 200
エラー3:429 Rate Limit Exceeded
# 症状:リクエスト过多で429错误
原因:短时间内的请求数超过上限
解決策:レート制限の處理とバケット Token Bucket アルゴリズム
import time
import threading
from collections import deque
class RateLimiter:
"""Token Bucket方式のレート制限"""
def __init__(self, max_requests: int = 60, time_window: int = 60):
self.max_requests = max_requests
self.time_window = time_window
self.requests = deque()
self.lock = threading.Lock()
def wait_if_needed(self):
"""レート制限に到達していたら待機"""
with self.lock:
now = time.time()
# 時間窓外の古いリクエストを削除
while self.requests and self.requests[0] < now - self.time_window:
self.requests.popleft()
if len(self.requests) >= self.max_requests:
# 最も古いリクエストが期限切れになるまで待機
sleep_time = self.requests[0] - (now - self.time_window)
if sleep_time > 0:
time.sleep(sleep_time)
return self.wait_if_needed() # 再帰的にチェック
self.requests.append(now)
def get_retry_after(self) -> int:
"""429エラー時に必要な待機時間を返す(秒)"""
with self.lock:
now = time.time()
if self.requests and len(self.requests) >= self.max_requests:
oldest = self.requests[0]
return max(1, int(oldest - (now - self.time_window)) + 1)
return 1
使用例
rate_limiter = RateLimiter(max_requests=30, time_window=60) # 1分間に30リクエスト
def call_holysheep_api(payload: dict) -> dict:
"""レート制限を考慮したAPI呼び出し"""
rate_limiter.wait_if_needed()
response = requests.post(
f"{HOLYSHEEP_BASE_URL}/chat/completions",
headers=headers,
json=payload,
timeout=10
)
if response.status_code == 429:
retry_after = rate_limiter.get_retry_after()
print(f"レート制限到达、{retry_after}秒後に再試行...")
time.sleep(retry_after)
return call_holysheep_api(payload) # 再帰的に再試行
return response
结论与CTA
本稿では、HolySheep AIを活用したAI驅動型のリスク管理システム構築方法を紹介しました。强平データを基にした自动损益計算と止损点位の動的調整により、感情に流されない一貫したリスク管理が可能になります。
特にHolySheep AIの<50msレイテンシと業界最安水準の料金(DeepSeek V3.2で$0.42/MTok)は、高頻度取引を行う投資家にとって大きなメリットです。新規登録で無料クレジットがもらえるので、まずは小额で 테스트해 보시기 바랍니다。
完全なソースコードと追加機能はHolySheep AIのドキュメントページを参照してください。
👉 HolySheep AI に登録して無料クレジットを獲得