메인 콘텐츠로 건너뛰기
POST
/
v1
/
messages
curl --request POST \
  --url https://direct.evolink.ai/v1/messages \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "model": "glm-5.2",
  "max_tokens": 1024,
  "messages": [
    {
      "role": "user",
      "content": "안녕하세요, 세계"
    }
  ]
}
'
{
  "id": "msg_0842a705-9d0b-4eaa-b12d-09a4106326c5",
  "type": "message",
  "role": "assistant",
  "model": "glm-5.2",
  "content": [
    {
      "type": "thinking",
      "thinking": "사용자가 한 단어로 인사해 달라고 요청했으니 \"Hi\"라고 답하면 됩니다.",
      "signature": ""
    },
    {
      "type": "text",
      "text": "Hi."
    }
  ],
  "stop_reason": "end_turn",
  "usage": {
    "input_tokens": 18,
    "output_tokens": 101,
    "cache_creation_input_tokens": 0,
    "cache_read_input_tokens": 0,
    "prompt_tokens_details": {
      "cached_tokens": 0
    }
  }
}
BaseURL: 기본 BaseURL은 https://direct.evolink.ai이며, 텍스트 모델과 장시간 연결을 더 잘 지원합니다. https://api.evolink.ai는 멀티모달 서비스의 기본 엔드포인트이자 텍스트 모델의 대체 주소 역할을 합니다.

인증

Authorization
string
header
필수

##모든 인터페이스는 Bearer Token 인증이 필요합니다##

API Key 발급:

API Key 관리 페이지에 방문하여 API Key를 발급받으세요

요청 헤더에 추가:

Authorization: Bearer YOUR_API_KEY

참고: EvoLink는 /v1/messages에 대해 일괄적으로 Bearer Token 인증을 사용합니다.

본문

application/json
model
enum<string>
필수

호출할 모델

사용 가능한 옵션:
glm-5.2
예시:

"glm-5.2"

messages
object[]
필수

대화 메시지 목록으로, 턴마다 user / assistant가 번갈아 나타납니다

설명:

  • 최소 1개의 메시지를 포함합니다
  • 마지막 메시지는 보통 role=user입니다
  • 멀티턴 컨텍스트를 지원하며, 모델이 과거 메시지를 참조합니다
Minimum array length: 1
max_tokens
integer

생성 내용 길이의 상한(Token 수)을 지정합니다

설명:

  • thinking이 생성하는 token도 이 상한에 포함됩니다
  • 상한에 도달하면 내용이 잘리며, 응답은 stop_reason=max_tokens입니다
필수 범위: x >= 1
예시:

1024

system

시스템 프롬프트로, AI의 역할과 동작을 설정하는 데 사용합니다

설명:

  • 문자열 또는 콘텐츠 블록 배열을 지원합니다
  • 최상위 system 필드로 전달합니다(messages에 넣지 마세요)
  • 모델이 system 제약을 따릅니다
  • ⚠️ 너무 긴 system은 잘릴 수 있습니다: 긴 컨텍스트가 필요하면 messages에 넣고, 모두 system에 쌓지 마세요
예시:

"You are a helpful assistant."

temperature
number

샘플링 온도

설명:

  • 값이 높을수록 출력이 더 발산적이고, 낮을수록 더 확정적입니다
  • 권장 범위 [0, 1]
필수 범위: 0 <= x <= 1
예시:

1

top_p
number

핵 샘플링 임계값

설명:

  • 범위 [0, 1]
  • temperature와 top_p를 동시에 조정하지 않는 것을 권장합니다
필수 범위: 0 <= x <= 1
예시:

0.9

top_k
integer

확률이 가장 높은 K개의 token 중에서만 샘플링합니다(Anthropic 고유 파라미터)

설명:

  • 값이 작을수록 출력이 더 확정적이고, 클수록 후보가 더 다양합니다
필수 범위: x >= 0
예시:

10

stop_sequences
string[]

사용자 정의 중지 시퀀스: 생성이 그중 어느 문자열에라도 적중하면 중지합니다

설명:

  • 적중 시 잘리며, 적중 지점 이전 내용은 정상적으로 반환됩니다
  • ⚠️ 주의: 중지 시퀀스에 적중할 때 GLM-5.2의 stop_reasonend_turn을 반환하며(Anthropic 표준인 stop_sequence가 아님), 응답에도 stop_sequence 필드가 포함되지 않습니다. 클라이언트가 stop_reason=="stop_sequence"로 적중을 판단한다면 별도 처리가 필요합니다
예시:
["\n\n"]
stream
boolean
기본값:false

SSE로 스트리밍 반환할지 여부

  • true: Server-Sent Events 스트리밍 반환(표준 Anthropic 이벤트 시퀀스: message_start / content_block_start / content_block_delta / message_delta / message_stop)
  • false: 완전한 응답 후 한 번에 반환(기본값)
예시:

false

thinking
object

심층 사고를 제어합니다

설명:

  • GLM-5.2는 추론 모델로, 이 필드를 전달하지 않으면 기본적으로 사고가 켜집니다
  • 켜져 있으면 응답 content 배열에 type="thinking"인 추론 과정 block이 나타납니다(output token으로 과금되며 signature는 빈 문자열일 수 있음)
  • {"type":"disabled"}를 전달하면 사고를 끌 수 있으며 output token을 크게 줄입니다
  • ⚠️ type 이진 스위치만 유효합니다: budget_tokens, effort 등 사고 예산/등급 파라미터는 적용되지 않으며(무시됨), 사고량을 세밀하게 제어할 수 없습니다
tools
object[]

도구 정의 목록

설명:

  • Anthropic tool 정의 규범을 따릅니다
  • input_schema는 JSON Schema 객체를 사용합니다
  • 모델은 표준 tool_use block을 반환하며, stop_reason=tool_use입니다
tool_choice
object

도구 선택 전략

metadata
object

요청 메타데이터

응답

메시지 객체

Anthropic 스타일의 메시지 응답

id
string

메시지 고유 ID(형식: msg_<uuid>)

type
enum<string>

응답 객체 유형

사용 가능한 옵션:
message
role
enum<string>
사용 가능한 옵션:
assistant
model
string

실제 사용된 모델

예시:

"glm-5.2"

content
object[]

응답 콘텐츠 블록 목록

포함될 수 있는 block type:

  • thinking: 추론 과정(사고가 켜져 있을 때, 기본적으로 켜짐)
  • text: 최종 답변 텍스트
  • tool_use: 모델이 발생시킨 도구 호출
stop_reason
enum<string>

중지 사유

  • end_turn: 자연스러운 종료(⚠️ stop_sequences에 적중할 때도 이 값을 반환)
  • max_tokens: max_tokens 상한 도달
  • tool_use: 모델이 도구 호출을 트리거
사용 가능한 옵션:
end_turn,
max_tokens,
tool_use
usage
object

Token 사용 통계(Anthropic 규범)