unhardcoded
첫 번째 요청 전송

퀵스타트

SDK를 호스트에 연결하고, 정책을 첨부하고, 반환되는 트레이스를 읽으세요.

기존 SDK에서 트레이스된 라우팅 결정까지 네 단계. 모델 이름은 하드코딩되지 않습니다. 결정은 정책으로서 요청과 함께 전달됩니다.

  1. SDK를 호스트에 연결하세요.
    unhardcoded는 OpenAI 호환입니다. baseURL을 호스트 주소로 변경하면 SDK의 나머지 부분은 그대로입니다.
    client.ts
    import OpenAI from "openai";
    
    const client = new OpenAI({
      baseURL: "https://<your-host>/v1",  // your reference host, or the managed host
      apiKey: process.env.UNHARDCODED_KEY,
    });
  2. 정책을 구성하고 호출과 함께 전송하세요.
    백엔드에서 policy_ir을 생성하여 create()에 첨부하세요. model 필드는 트레이스를 그룹화하는 자유 형식 레이블로만 사용됩니다. 라우팅은 첨부된 정책에서 결정되므로 어떤 문자열이든 유효합니다.
    route.ts
    // built in your backend, at request time, a plain JSON term
    const policy_ir = [
      "policy",
      ["and", ["meets_req"], ["not", ["is", "disabled"]], ["has_cap", "supports_tools"],
             ["cmp", "bench_intelligence", "ge", 0.5]],  // filter
      ["neg", ["normalize", ["field", "price_out"]]],          // cheapest survivor
      ["argmax"], ["id"],
      ["always", { "action": "next_candidate" }],
    ];
    
    const res = await client.chat.completions.create({
      model: "policy:support",  // free-form trace label, not a route
      policy_ir,
      messages,
    });
  3. 호스트가 호출을 라우팅합니다.
    호스트는 정책을 검증하고 지문(fingerprint)을 생성한 후, 실시간 카탈로그에서 정책을 평가하고, 직접 보유한 제공자 키를 통해 조건을 통과한 가장 저렴한 모델을 실행합니다.
  4. 트레이스를 읽으세요.
    완료된 응답과 함께 trace가 반환됩니다: 선택된 모델, 순위가 매겨지고 거부된 후보 모델들, 그리고 정책 지문(fingerprint).
    response · trace (illustrative)
    {
      "chosen": { "model_family": "deepseek-v4-pro", "price_out": 1.5 },
      "trace": {
        "policy_fingerprint": "301140696-1054914287",
        "rejected": [{ "model_family": "deepseek-v4-flash", "reason": "cmp bench_intelligence ge 0.5" }],
        "total_latency_ms": 425
      }
    }
직접 실행하기. MIT 라이선스 레퍼런스 호스트와 실행 가능한 예제는 공개 저장소에 포함되어 있습니다. 아래에 문서화된 형식과 의미론은 해당 호스트가 구현하는 명세이므로, 직접 보유한 카탈로그 대비 모든 내용을 재현할 수 있습니다.
← 문서로 돌아가기