Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

챗봇 세션 로그

챗봇에 보낸 메시지 하나가 실행 한 건입니다. 실행마다 고유 trace 식별자가 부여되며 관련 로그를 연결합니다. 구조화 이벤트를 Foundry 스트리밍 데이터셋으로 내보내어 감시하고 분석할 수 있습니다. 로그 내보내기 기능과 해당 관리 권한이 필요하며 이벤트 유형과 스키마는 변경될 수 있습니다.

보안과 보존

로그에는 사용자 식별자, 프롬프트, 애플리케이션 변수, 검색 문맥과 도구 입출력이 포함될 수 있습니다. 내보내기 전에 관측 목적과 보존 기간을 정하고 필요한 담당자만 출력 데이터셋에 접근하게 합니다. 로그 구성에서 Apply markings로 출력 스트리밍 데이터셋에 보안 표지를 적용합니다. 사용자 식별자를 실제 사용자에게 연결할 수 있다는 점을 고려하여 접근과 보존을 관리합니다.

공통 필드

필드자료형의미
traceIdString같은 실행의 모든 로그를 연결하는 Foundry 추적 식별자입니다. 함수 및 언어 모델 사용 로그에도 공유됩니다.
uidString메시지를 보낸 사용자 식별자입니다.
owning_ridString전체 호출을 시작한 원래 실행 리소스입니다. 챗봇 A가 함수를 거쳐 챗봇 B를 호출해도 관련 로그의 값은 A의 RID입니다.

챗봇 데이터는 event_name과 이벤트별 payload로 구성합니다. 모든 payload의 session_rid는 같은 대화를 묶습니다.

이벤트와 페이로드

session_metadata는 실행 시작에 한 번 기록합니다. agent_rid, agent_version, session_rid, caller_identifier가 모두 String이며 각각 챗봇 RID, 버전, 세션 RID와 호출자를 나타냅니다.

user_request에는 해석이 끝난 요청 문맥을 기록합니다.

필드자료형의미
session_ridString세션 식별자.
user_queryUserQuery텍스트와 미디어를 포함할 수 있는 사용자 메시지.
contexts_from_profileList<Context>챗봇에 구성한 온톨로지, 문서, 함수 기반, 사용자 정의 문서 문맥의 검색 결과.
contexts_from_user_inputList<Context>사용자 입력에서 해석한 검색 문맥.
application_variablesList<ApplicationVariable>요청 시점 변수의 식별자, 이름, 값과 프롬프트 가시성.
node_idString실행 노드 식별자.
parent_node_id선택적 String이어서 실행한 이전 세션 노드 식별자.

system_chat_message, user_chat_message, assistant_chat_message는 모델에 전달한 시스템 프롬프트, 사용자 메시지, 모델 응답을 기록합니다. 공통으로 session_rid: String과 텍스트, 미디어 참조 또는 도구 호출을 포함하는 content: List<Content>가 있습니다. native_tools: List<NativeTool>는 자체 도구 호출 모드의 system_chat_message에만 존재합니다. 프롬프트 기반 도구 정의는 content 안에 들어갑니다.

tool_call에는 session_rid: String, tool_name: String, 입력 이름과 값의 맵인 parsed_tool_input: Map<String, String>이 있습니다.

tool_call_result에는 session_rid: String, tool_name: String, 선택적 tool_call_id: String, 밀리초 실행 시간 duration_milliseconds: Long, result: ToolResult가 있습니다. 성공 결과는 LLM에 반환한 llm_value: String과 갱신한 변수 이름 및 새 값의 variable_updates 목록을 담습니다. 실패 결과는 error_message: String과 reason: String을 담습니다.

final_response는 session_rid와 response: FinalResponse를 기록합니다. Chatbot response는 텍스트와 미디어를 포함한 콘텐츠 목록이며, Client tool call은 직접 답하는 대신 클라이언트 동작에 처리를 넘겼다는 뜻입니다. execution_error는 session_rid: String과 error_name: String으로 실행 오류를 기록합니다.

조사 예시

대화를 재구성하려면 owning_rid로 시작 챗봇을 고르고 session_rid로 한 대화를 한정합니다. user_request.user_query에서 질문을, final_response.response에서 응답을 가져옵니다.

도구 성능은 tool_call_result에서 도구별 성공 및 실패 수와 시간을 비교합니다. duration_milliseconds로 정렬하면 느린 호출을 찾을 수 있습니다. 같은 traceId에서 동일 도구의 실패 뒤에 다시 호출과 결과가 이어지면 재시도를 조사할 수 있습니다. 반복 호출 자체가 항상 재시도라는 뜻은 아니므로 실패와 입력을 함께 확인합니다.

아래는 user_request 로그의 축약된 구조 예시입니다.

{
  "time": "2024-01-15T09:30:00.000Z",
  "uid": "<USER_ID>",
  "traceId": "<TRACE_ID>",
  "content": {
    "event_name": "user_request",
    "payload": {
      "session_rid": "ri.aip-agents..session.<SESSION_ID>",
      "user_query": {
        "content": [
          {
            "text": {
              "content": "Summarize the key points from the latest press conference transcript."
            }
          }
        ]
      }
    }
  }
}