AI Connections용 Multi-Turn State

AI Connections용 Multi-Turn State

멀티 턴 시뮬레이션 동안 턴을 가로질러 정보를 유지(persist)하는 기능이에요.

출처: 문서

본문

개요 (Overview)

멀티 턴 시뮬레이션에서는 Confident AI가 AI Connection 엔드포인트를 턴마다 한 번씩 호출해요. state를 사용해 스레드 ID나 세션 같은 정보를 턴을 가로질러 유지하면, AI 앱이 대화 전체에서 컨텍스트를 유지할 수 있어요.

첫 번째 턴에서는 이전 state가 없으므로 페이로드의 state 변수가 비어 있어요. 엔드포인트가 state 객체를 반환하고 state 키 경로가 성공적으로 추출하면, 두 번째 턴부터 그 state가 페이로드 state 변수에 포함돼요.

sequenceDiagram
    participant C as Confident AI Platform
    participant E as Your AI Connection Endpoint

    Note over C,E: Turn 1 (no state yet)
    C->>E: { ...payload }
    Note over E: No state present,<br/>generate new threadId
    E-->>C: { ...response, "state": {"threadId": "xyz"} }
    Note over C: Extract state via key path

    Note over C,E: Turn 2 (state included)
    C->>E: { ...payload, state: {"threadId": "xyz"} }
    Note over E: Use threadId from state<br/>to continue conversation
    E-->>C: { ...response, "state": {"threadId": "xyz"} }

    Note over C,E: Turns 3, 4, 5... (same pattern)
    C->>E: { ...payload, state: {"threadId": "xyz"} }
    E-->>C: { ...response, "state": {"threadId": "xyz"} }

페이로드 (Payload)

멀티 턴 state를 활성화하려면 페이로드 구성에 state를 포함시켜 각 턴마다 엔드포인트로 보내지게 해요.

{
  "input": golden.input,
  "state": state
}

엔드포인트가 state를 처리하는 예시를 보여줄게요.

@app.post("/generate")
def generate(request: dict):
    state = request.get("state", {})

    if not state:
        thread_id = create_new_thread()
    else:
        thread_id = state["threadId"]

    response = llm.generate(
        thread_id=thread_id,
        user=request["input"]
    )

    return {
        "output": response,
        "state": {"threadId": thread_id}
    }

State 키 경로 (State Key Path)

state 키 경로는 actual output 키 경로와 똑같이 동작해요. JSON 응답에서 state 객체까지의 경로를 나타내는 문자열 또는 정수 목록이에요. 이 경로는 Confident AI가 엔드포인트 응답에서 state를 어디서 추출할지 알려주고, 다음 턴에 다시 전달할 수 있게 해요.

예를 들어 엔드포인트가 이렇게 반환하면:

{
  "output": "Hello! How can I help?",
  "state": {
    "threadId": "abc-123"
  }
}

state 키 경로를 ["state"]로 설정해요.

state는 멀티 턴 평가(시뮬레이션)에만 관련돼요. 단일 턴 평가에서는 이 설정을 완전히 무시해도 돼요.

다음 단계 (Next Steps)

이제 AI connection이 턴을 가로질러 컨텍스트를 유지할 수 있으니, 각 턴을 트레이스에 연결해 완전한 관측성을 확보하세요.

Linking Traces

테스트 케이스와 턴을 그 트레이스에 연결해 완전한 관측성을 확보해요.

Multi-Turn Evals

AI connection을 상대로 멀티 턴 평가를 실행해요.

더 알아보기 (Learn more)