세션 로그
세션 로그 (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
)