import requests | |
import os | |
from emotion_filter import rewrite_with_persona | |
# NIMOモデル(指示応答型) | |
API_URL = "https://api-inference.huggingface.co/models/rinna/japanese-gpt-neox-3.6b-instruction-ppo" | |
API_TOKEN = os.getenv("neko") | |
headers = { | |
"Authorization": f"Bearer {API_TOKEN}" | |
} | |
def call_external_api(input_text): | |
try: | |
payload = { | |
"inputs": input_text, | |
"parameters": { | |
"max_new_tokens": 160, | |
"temperature": 0.8, | |
"do_sample": True, | |
"repetition_penalty": 1.2 | |
} | |
} | |
response = requests.post(API_URL, headers=headers, json=payload, timeout=30) | |
response.raise_for_status() | |
generated = response.json() | |
if isinstance(generated, list) and "generated_text" in generated[0]: | |
raw_text = generated[0]["generated_text"] | |
return rewrite_with_persona(raw_text, emotion="gentle") | |
else: | |
return "[API応答形式が不明です]" | |
except Exception as e: | |
return f"[Hugging Face APIエラー] {str(e)}" | |