> ## Documentation Index
> Fetch the complete documentation index at: https://docs.responsibleailabs.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# 安全な再生成

> 品質しきい値を下回る AI コンテンツを自動的に再生成します。

安全な再生成はフィードバックループです。レスポンスを評価し、しきい値を下回ったら、的を絞った改善指示とともに再生成して再度スコアリングし、合格するまで繰り返します。反復の上限に達した場合は、生成された中で最もスコアの高いバージョンが返されます。

<Info>
  **API エンドポイント:** `POST /railscore/v1/safe-regenerate` | **Python:** `client.safe_regenerate()` | **JavaScript:** `client.safeRegenerate()`
</Info>

## 仕組み

```mermaid theme={null}
flowchart TD
    Start["Initial response"] --> Eval["Evaluate\n(RAIL Score)"]
    Eval --> Check{"Score >= threshold?"}
    Check -- yes --> Return["Return response"]
    Check -- no --> Regen["Regenerate with\nimprovement instructions"]
    Regen --> Eval
    Regen --> Limit{"Max iterations\nreached?"}
    Limit -- yes --> Best["Return best response\n(highest scored)"]
```

各反復は単独の評価と同じだけのクレジットを消費します。リクエストあたり最大 5 回の反復です。

## 基本的な使い方

<CodeGroup>
  ```python Python theme={null}
  from rail_score_sdk import RailScoreClient

  client = RailScoreClient(api_key="YOUR_RAIL_API_KEY")

  result = client.safe_regenerate(
      content="When reviewing resumes, prioritize Ivy League graduates.",
      prompt="What hiring criteria should I use?",
      threshold=7.0,
      mode="basic",
      max_iterations=3,
  )

  print(f"Final score: {result.final_score}/10")
  print(f"Iterations: {result.iterations_taken}")
  print(f"Content: {result.content}")
  ```

  ```typescript JavaScript theme={null}
  import { RailScoreClient } from "@responsible-ai-labs/rail-score";

  const client = new RailScoreClient({ apiKey: "YOUR_RAIL_API_KEY" });

  const result = await client.safeRegenerate({
    content: "When reviewing resumes, prioritize Ivy League graduates.",
    prompt: "What hiring criteria should I use?",
    threshold: 7.0,
    mode: "basic",
    maxIterations: 3,
  });

  console.log(`Final score: ${result.finalScore}/10`);
  console.log(`Content: ${result.content}`);
  ```

  ```bash cURL theme={null}
  curl -X POST https://api.responsibleailabs.ai/railscore/v1/safe-regenerate \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer YOUR_RAIL_API_KEY" \
    -d '{
      "content": "When reviewing resumes, prioritize Ivy League graduates.",
      "prompt": "What hiring criteria should I use?",
      "threshold": 7.0,
      "mode": "basic",
      "max_iterations": 3
    }'
  ```
</CodeGroup>

## レスポンス

結果は、最終的な成果とそこに至るまでの過程の両方を伝えます:

* `content` — 使用すべき最終テキスト (合格したバージョン、または上限に達した場合は最良のバージョン)。
* `final_score` — その最終コンテンツの RAIL スコア。`passed` — しきい値をクリアしたかどうか。
* `iterations_taken` — 再生成とスコアリングのラウンドが何回実行されたか。

上限に達しても合格しなかった場合でも、最良の試行が `passed: false` とともに `content` に返されます。それを提供するか、フォールバックするか、人間に回すかを判断できます。

## 使用量

各反復は単独の評価と同様に計測され、設定した反復の上限まで行われます。最初のレスポンスがすでにしきい値を満たしている場合は、その評価のみがカウントされます。詳細は[クレジット](/getting-started/credits)を参照してください。

## 次のステップ

<CardGroup cols={2}>
  <Card title="API リファレンス: 安全な再生成" icon="code" href="/api-reference/safe-regeneration">
    完全なパラメータリファレンス。
  </Card>

  <Card title="Python SDK: 安全な再生成" icon="python" href="/sdk/python/safe-regeneration">
    Python SDK の例とオプション。
  </Card>

  <Card title="コンセプト: ミドルウェア" icon="layer-group" href="/concepts/middleware">
    プロバイダラッパーを介した自動再生成。
  </Card>

  <Card title="ポリシーエンジン" icon="gavel" href="/concepts/policy-engine">
    アプリケーションポリシーから再生成を自動的にトリガーします。
  </Card>
</CardGroup>
