세션 로그

세션 로그 (Session Logs)

요청을 세션으로 묶어서 관련 요청들을 함께 그룹화할 수 있는 기능이에요. 같은 세션 ID를 공유하는 요청들을 추적하고 관리하는 방법을 소개할게요.

출처: 문서

본문

요청을 세션으로 그룹화해요. 이렇게 하면 관련 요청들을 함께 그룹화할 수 있어요.

사용법

/chat/completions

여러 요청을 하나의 세션으로 묶으려면 각 요청의 metadata에 같은 litellm_session_id를 전달하면 돼요. 방법은 다음과 같아요:

  • OpenAI Python v1.0.0+
  • Langchain
  • Curl
  • LiteLLM Python SDK

Request 1 고유한 ID로 새 세션을 만들고 첫 번째 요청을 보내요. 세션 ID는 모든 관련 요청을 추적하는 데 쓰여요.

import openai
import uuid

# Create a session ID
session_id = str(uuid.uuid4())

client = openai.OpenAI(
    api_key="<your litellm api key>",
    base_url="http://0.0.0.0:4000"
)

# First request in session
response1 = client.chat.completions.create(
    model="gpt-5.6-terra",
    messages=[
        {
            "role": "user",
            "content": "Write a short story about a robot"
        }
    ],
    extra_body={
        "litellm_session_id": session_id  # Pass the session ID
    }
)

Request 2 같은 세션 ID로 또 다른 요청을 보내서 이전 요청과 연결해요. 관련 요청들을 함께 추적할 수 있어요.

# Second request using same session ID
response2 = client.chat.completions.create(
    model="gpt-5.6-terra", 
    messages=[
        {
            "role": "user",
            "content": "Now write a poem about that robot"
        }
    ],
    extra_body={
        "litellm_session_id": session_id  # Reuse the same session ID
    }
)

Request 1 고유한 ID로 새 세션을 초기화하고 요청을 보낼 채팅 모델 인스턴스를 만들어요. 세션 ID는 모델 설정에 포함돼요.

from langchain.chat_models import ChatOpenAI
import uuid

# Create a session ID
session_id = str(uuid.uuid4())

chat = ChatOpenAI(
    openai_api_base="http://0.0.0.0:4000",
    api_key="<your litellm api key>",
    model="gpt-5.6-terra",
    extra_body={
        "litellm_session_id": session_id  # Pass the session ID
    }
)

# First request in session
response1 = chat.invoke("Write a short story about a robot")

Request 2 같은 채팅 모델 인스턴스를 사용해 또 다른 요청을 보내요. 이전에 설정된 세션 ID를 통해 세션 컨텍스트를 자동으로 유지해요.

# Second request using same chat object and session ID
response2 = chat.invoke("Now write a poem about that robot")

Request 1 새 세션 ID를 생성하고 첫 번째 API 호출을 보내요. metadata의 세션 ID가 이 대화를 추적하는 데 쓰여요.

# Create a session ID
SESSION_ID=$(uuidgen)

# Store your API key
API_KEY="<your litellm api key>"

# First request in session
curl --location 'http://0.0.0.0:4000/chat/completions' \
    --header 'Content-Type: application/json' \
    --header "Authorization: Bearer ***" \
    --data '{
    "model": "gpt-5.6-terra",
    "messages": [
        {
        "role": "user",
        "content": "Write a short story about a robot"
        }
    ],
    "litellm_session_id": "'$SESSION_ID'"
}'

Request 2 같은 세션 ID를 사용해 후속 요청을 보내서 대화 컨텍스트와 추적을 유지해요.

# Second request using same session ID
curl --location 'http://0.0.0.0:4000/chat/completions' \
    --header 'Content-Type: application/json' \
    --header "Authorization: Bearer ***" \
    --data '{
    "model": "gpt-5.6-terra",
    "messages": [
        {
        "role": "user",
        "content": "Now write a poem about that robot"
        }
    ],
    "litellm_session_id": "'$SESSION_ID'"
}'

Request 1 고유한 ID를 만들어 새 세션을 시작하고 첫 번째 요청을 보내요. 이 세션 ID는 관련 요청들을 그룹화하는 데 쓰여요.

import litellm
import uuid

# Create a session ID
session_id = str(uuid.uuid4())

# First request in session
response1 = litellm.completion(
    model="gpt-5.6-terra",
    messages=[{"role": "user", "content": "Write a short story about a robot"}],
    api_base="http://0.0.0.0:4000",
    api_key="<your litellm api key>",
    metadata={
        "litellm_session_id": session_id  # Pass the session ID
    }
)

Request 2 같은 세션 ID로 또 다른 요청을 보내 대화를 이어가고, 이전 상호작용과 연결해요.

# Second request using same session ID
response2 = litellm.completion(
    model="gpt-5.6-terra",
    messages=[{"role": "user", "content": "Now write a poem about that robot"}],
    api_base="http://0.0.0.0:4000",
    api_key="<your litellm api key>",
    metadata={
        "litellm_session_id": session_id  # Reuse the same session ID
    }
)

/responses

/responses 엔드포인트에서는 previous_response_id를 사용해 요청을 세션으로 그룹화해요. previous_response_id는 각 요청의 응답에서 반환돼요.

  • OpenAI Python v1.0.0+
  • Curl
  • LiteLLM Python SDK

Request 1 첫 번째 요청을 보내고 후속 요청을 연결하는 데 쓸 응답 ID를 저장해요.

from openai import OpenAI

client = OpenAI(
    api_key="<your litellm api key>",
    base_url="http://0.0.0.0:4000"
)

# First request in session
response1 = client.responses.create(
    model="anthropic/claude-sonnet-5",
    input="Write a short story about a robot"
)

# Store the response ID for the next request
response_id = response1.id

Request 2 이전 응답 ID를 사용해 후속 요청을 보내 대화 컨텍스트를 유지해요.

# Second request using previous response ID
response2 = client.responses.create(
    model="anthropic/claude-sonnet-5",
    input="Now write a poem about that robot",
    previous_response_id=response_id  # Link to previous request
)

Request 1 첫 번째 요청을 보내요. 응답에는 후속 요청을 연결하는 데 쓸 수 있는 ID가 포함돼요.

# Store your API key
API_KEY="<your litellm api key>"

# First request in session
curl http://localhost:4000/v1/responses \
    --header 'Content-Type: application/json' \
    --header "Authorization: Bearer ***" \
    --data '{
        "model": "anthropic/claude-sonnet-5",
        "input": "Write a short story about a robot"
    }'

# Response will include an 'id' field that you'll use in the next request

Request 2 이전 응답 ID를 사용해 후속 요청을 보내 대화 컨텍스트를 유지해요.

# Second request using previous response ID
curl http://localhost:4000/v1/responses \
    --header 'Content-Type: application/json' \
    --header "Authorization: Bearer ***" \
    --data '{
        "model": "anthropic/claude-sonnet-5",
        "input": "Now write a poem about that robot",
        "previous_response_id": "resp_abc123..."  # Replace with actual response ID from previous request
    }'

Request 1 첫 번째 요청을 보내고 후속 요청을 연결하는 데 쓸 응답 ID를 저장해요.

import litellm

# First request in session
response1 = litellm.responses(
    model="anthropic/claude-sonnet-5",
    input="Write a short story about a robot",
    api_base="http://0.0.0.0:4000",
    api_key="<your litellm api key>"
)

# Store the response ID for the next request
response_id = response1.id

Request 2 이전 응답 ID를 사용해 후속 요청을 보내 대화 컨텍스트를 유지해요.

# Second request using previous response ID
response2 = litellm.responses(
    model="anthropic/claude-sonnet-5",
    input="Now write a poem about that robot",
    api_base="http://0.0.0.0:4000",
    api_key="<your litellm api key>",
    previous_response_id=response_id  # Link to previous request
)

더 알아보기 (Learn more)