메인 콘텐츠로 건너뛰기
DeepSeek는 매우 강력한 AI 대화 시스템으로, 입력한 프롬프트에 따라 몇 초 만에 유창하고 자연스러운 응답을 생성할 수 있습니다. DeepSeek-V3는 뛰어난 언어 이해 및 생성 능력으로 업계에서 독보적인 존재이며, 현재 DeepSeek-V3는 다양한 산업 및 분야에서 널리 사용되고 있으며 그 영향력이 더욱 두드러지고 있습니다. 일상 대화, 창의적 글쓰기, 전문 상담, 코드 프로그래밍 등에서 DeepSeek-V3는 놀라운 지능적 지원을 제공하여 인간의 작업 효율성과 창의성을 크게 향상시킵니다. 이 문서는 DeepSeek Chat Completion API 사용 프로세스를 주로 소개하며, 이를 통해 공식 DeepSeek의 대화 기능을 쉽게 사용할 수 있습니다.

신청 프로세스

DeepSeek Chat Completion API를 사용하려면 먼저 DeepSeek Chat Completion API 페이지에서 “Acquire” 버튼을 클릭하여 요청에 필요한 자격 증명을 얻습니다: 로그인 또는 등록이 되어 있지 않으면 자동으로 로그인 페이지로 이동하여 등록 및 로그인을 요청합니다. 로그인 및 등록 후에는 자동으로 현재 페이지로 돌아옵니다. 첫 신청 시 무료 한도가 제공되어 해당 API를 무료로 사용할 수 있습니다.

기본 사용

다음으로는 인터페이스에 해당 내용을 입력하면 됩니다, 아래 그림과 같이:

이 인터페이스를 처음 사용할 때는 최소한 세 가지 내용을 입력해야 합니다. 하나는 authorization으로, 드롭다운 목록에서 선택하면 됩니다. 또 다른 매개변수는 model로, model은 DeepSeek 공식 모델 카테고리를 선택하는 것입니다. 여기에는 주로 4가지 모델이 있으며, 자세한 내용은 제공된 모델을 참조할 수 있습니다. 마지막 매개변수는 messages로, messages는 우리가 입력하는 질문어 배열입니다. 이는 배열로, 여러 질문어를 동시에 업로드할 수 있으며, 각 질문어는 rolecontent를 포함합니다. 여기서 role은 질문자의 역할을 나타내며, 우리는 user, assistant, system의 세 가지 신원을 제공합니다. 또 다른 content는 우리가 질문하는 구체적인 내용입니다. 또한 오른쪽에 해당 호출 코드 생성이 있으며, 코드를 복사하여 직접 실행할 수도 있고, “Try” 버튼을 클릭하여 테스트할 수도 있습니다. 자주 사용하는 선택적 매개변수:
  • max_tokens: 단일 응답의 최대 토큰 수를 제한합니다.
  • temperature: 생성의 무작위성, 0-2 사이의 값으로, 값이 클수록 더 분산됩니다.
  • n: 한 번에 생성할 후보 응답 수입니다.
  • response_format: 반환 형식 설정입니다.

호출 후, 반환 결과는 다음과 같습니다:
{
  "id": "chatcmpl-050bf20a-ebcd-498a-bf6e-63ee0738013b",
  "object": "chat.completion",
  "created": 1764846609,
  "model": "deepseek-v3.2-exp",
  "usage": {
    "prompt_tokens": 8,
    "completion_tokens": 11,
    "total_tokens": 19
  },
  "choices": [
    {
      "index": 0,
      "message": {
        "content": "Hello! 😊 How can I help you today?",
        "role": "assistant"
      },
      "refs": null,
      "logprobs": null,
      "finish_reason": "stop",
      "service_tier": null
    }
  ]
}
반환 결과는 여러 필드를 포함하며, 설명은 다음과 같습니다:
  • id: 이번 대화 작업의 ID로, 해당 대화 작업을 고유하게 식별하는 데 사용됩니다.
  • created: 이번 대화 작업의 생성 시간 정보입니다.
  • model: 선택한 DeepSeek 공식 모델입니다.
  • choices: DeepSeek가 질문어에 대해 제공한 응답 정보입니다.
  • usage: 이번 질문-응답 쌍에 대한 토큰 통계 정보입니다.
그 중 choices는 DeepSeek의 응답 정보를 포함하고 있으며, 그 안의 choices는 DeepSeek의 응답 정보를 나타냅니다. 아래 그림과 같이 확인할 수 있습니다.

choices 안의 content 필드에는 DeepSeek의 구체적인 응답 내용이 포함되어 있습니다.

스트리밍 응답

이 인터페이스는 스트리밍 응답도 지원하며, 이는 웹 페이지 통합에 매우 유용하여 웹 페이지에서 글자 단위로 표시하는 효과를 구현할 수 있습니다. 스트리밍 응답을 원하면 요청 헤더의 stream 매개변수를 true로 변경하면 됩니다. 변경 사항은 아래 그림과 같으며, 호출 코드는 스트리밍 응답을 지원하도록 적절한 변경이 필요합니다.

streamtrue로 변경하면 API는 해당 JSON 데이터를 줄 단위로 반환하며, 코드 측면에서 우리는 줄 단위 결과를 얻기 위해 적절한 수정을 해야 합니다. Python 샘플 호출 코드:
import requests

url = "https://api.acedata.cloud/deepseek/chat/completions"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "model": "deepseek-v3",
    "messages": [{"role":"user","content":"hello"}],
    "stream": True
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
출력 효과는 다음과 같습니다:
data: {"id": "o7X27b1-2kFHot-97098d957dd1d39a-PDX", "object": "chat.completion.chunk", "created": 1755437709, "model": "deepseek-v3", "system_fingerprint": null, "choices": [{"delta": {"content": "안녕하세요", "role": "assistant"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "o7X27b1-2kFHot-97098d957dd1d39a-PDX", "object": "chat.completion.chunk", "created": 1755437709, "model": "deepseek-v3", "system_fingerprint": null, "choices": [{"delta": {"content": "!", "role": "assistant"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "o7X27b1-2kFHot-97098d957dd1d39a-PDX", "object": "chat.completion.chunk", "created": 1755437709, "model": "deepseek-v3", "system_fingerprint": null, "choices": [{"delta": {"content": "", "role": "assistant"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "o7X27b1-2kFHot-97098d957dd1d39a-PDX", "object": "chat.completion.chunk", "created": 1755437709, "model": "deepseek-v3", "system_fingerprint": null, "choices": [{"delta": {"content": " 😊", "role": "assistant"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "o7X27b1-2kFHot-97098d957dd1d39a-PDX", "object": "chat.completion.chunk", "created": 1755437709, "model": "deepseek-v3", "system_fingerprint": null, "choices": [{"delta": {"content": " 어떻게", "role": "assistant"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "o7X27b1-2kFHot-97098d957dd1d39a-PDX", "object": "chat.completion.chunk", "created": 1755437709, "model": "deepseek-v3", "system_fingerprint": null, "choices": [{"delta": {"content": " 도와줄", "role": "assistant"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "o7X27b1-2kFHot-97098d957dd1d39a-PDX", "object": "chat.completion.chunk", "created": 1755437709, "model": "deepseek-v3", "system_fingerprint": null, "choices": [{"delta": {"content": " 수", "role": "assistant"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "o7X27b1-2kFHot-97098d957dd1d39a-PDX", "object": "chat.completion.chunk", "created": 1755437709, "model": "deepseek-v3", "system_fingerprint": null, "choices": [{"delta": {"content": " 있습니다", "role": "assistant"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "o7X27b1-2kFHot-97098d957dd1d39a-PDX", "object": "chat.completion.chunk", "created": 1755437709, "model": "deepseek-v3", "system_fingerprint": null, "choices": [{"delta": {"content": " 당신을", "role": "assistant"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "o7X27b1-2kFHot-97098d957dd1d39a-PDX", "object": "chat.completion.chunk", "created": 1755437709, "model": "deepseek-v3", "system_fingerprint": null, "choices": [{"delta": {"content": " 오늘", "role": "assistant"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "o7X27b1-2kFHot-97098d957dd1d39a-PDX", "object": "chat.completion.chunk", "created": 1755437709, "model": "deepseek-v3", "system_fingerprint": null, "choices": [{"delta": {"content": "?", "role": "assistant"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "o7X27b1-2kFHot-97098d957dd1d39a-PDX", "object": "chat.completion.chunk", "created": 1755437709, "model": "deepseek-v3", "system_fingerprint": null, "choices": [{"delta": {"content": "", "role": "assistant"}, "logprobs": null, "finish_reason": "stop", "index": 0}], "usage": {"prompt_tokens": 4, "completion_tokens": 12, "total_tokens": 16, "prompt_tokens_details": {"cached_tokens": 0, "text_tokens": 0, "audio_tokens": 0, "image_tokens": 0}, "completion_tokens_details": {"text_tokens": 0, "audio_tokens": 0, "reasoning_tokens": 0}, "input_tokens": 0, "output_tokens": 0, "input_tokens_details": null}}

data: [DONE]
응답 안에는 여러 개의 data가 있으며, data 안의 choices가 최신의 답변 내용입니다. choices는 추가된 답변 내용이며, 결과에 따라 시스템에 연결할 수 있습니다. 또한 스트리밍 응답의 종료는 data의 내용을 기준으로 판단하며, 내용이 [DONE]일 경우 스트리밍 응답이 모두 종료된 것을 의미합니다. 반환된 data 결과는 여러 필드를 포함하고 있으며, 설명은 다음과 같습니다:
  • id, 이번 대화 작업을 생성한 ID로, 이번 대화 작업을 고유하게 식별하는 데 사용됩니다.
  • model, 선택한 DeepSeek 공식 모델입니다.
  • choices, DeepSeek가 질문에 대해 제공한 답변 정보입니다.
JavaScript도 지원되며, 예를 들어 Node.js의 스트리밍 호출 코드는 다음과 같습니다:
const options = {
  method: "post",
  headers: {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
  },
  body: JSON.stringify({
    "model": "deepseek-v3",
    "messages": [{"role":"user","content":"안녕하세요"}],
    "stream": true
  })
};

fetch("https://api.acedata.cloud/deepseek/chat/completions", options)
  .then(response => response.json())
  .then(response => console.log(response))
  .catch(err => console.error(err));
Java 샘플 코드:
JSONObject jsonObject = new JSONObject();
jsonObject.put("model", "deepseek-v3");
jsonObject.put("messages", [{"role":"user","content":"안녕하세요"}]);
jsonObject.put("stream", true);
MediaType mediaType = "application/json; charset=utf-8".toMediaType();
RequestBody body = jsonObject.toString().toRequestBody(mediaType);
Request request = new Request.Builder()
  .url("https://api.acedata.cloud/deepseek/chat/completions")
  .post(body)
  .addHeader("accept", "application/json")
  .addHeader("authorization", "Bearer {token}")
  .addHeader("content-type", "application/json")
  .build();

OkHttpClient client = new OkHttpClient();
Response response = client.newCall(request).execute();
System.out.print(response.body!!.string())
다른 언어는 별도로 수정할 수 있으며, 원리는 모두 동일합니다.

다중 회화

다중 회화 기능을 연결하려면 messages 필드에 여러 개의 질문을 업로드해야 하며, 여러 질문의 구체적인 예시는 아래 그림과 같습니다:

Python 샘플 호출 코드:
import requests

url = "https://api.acedata.cloud/deepseek/chat/completions"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "model": "deepseek-v3",
    "messages": [{"role":"user","content":"안녕하세요"},{"role":"assistant","content":"안녕하세요! 오늘 무엇을 도와드릴까요?"},{"role":"user","content":"내가 방금 뭐라고 했지?"}]
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
여러 개의 질문어를 업로드하면 쉽게 다중 대화를 구현할 수 있으며, 다음과 같은 답변을 얻을 수 있습니다:
{
  "id": "as-8g3qzbsw2b",
  "object": "chat.completion",
  "created": 1755437895,
  "model": "deepseek-v3",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "당신이 방금 말한 것은:  \n\n**\"안녕하세요\"**  \n\n그리고 제가 응답한 것은:  \n\n**\"안녕하세요! 오늘 무엇을 도와드릴까요?\"**  \n\n그 후 당신이 추가로 말한 것은:  \n\n**\"내가 방금 뭐라고 했지?\"**  \n\n어떻게 도와드릴 수 있는지 알려주세요! 😊"
      },
      "finish_reason": "stop",
      "flag": 0
    }
  ],
  "usage": {
    "prompt_tokens": 22,
    "completion_tokens": 57,
    "total_tokens": 79
  }
}
choices에 포함된 정보는 기본 사용 내용과 일치하며, 이는 DeepSeek가 여러 대화에 대해 응답하는 구체적인 내용을 포함하고 있어 여러 대화 내용을 바탕으로 해당 질문에 답변할 수 있습니다.

오류 처리

API를 호출할 때 오류가 발생하면, API는 해당 오류 코드와 정보를 반환합니다. 예를 들어:
  • 400 token_mismatched:잘못된 요청, 누락되었거나 잘못된 매개변수 때문일 수 있습니다.
  • 400 api_not_implemented:잘못된 요청, 누락되었거나 잘못된 매개변수 때문일 수 있습니다.
  • 401 invalid_token:권한 없음, 잘못되었거나 누락된 인증 토큰입니다.
  • 429 too_many_requests:요청이 너무 많음, 비율 제한을 초과했습니다.
  • 500 api_error:내부 서버 오류, 서버에서 문제가 발생했습니다.

오류 응답 예시

{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "fetch failed"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}

결론

이 문서를 통해 DeepSeek Chat Completion API를 사용하여 공식 DeepSeek의 대화 기능을 쉽게 구현하는 방법을 이해하셨습니다. 이 문서가 API를 더 잘 연결하고 사용하는 데 도움이 되기를 바랍니다. 질문이 있으시면 언제든지 기술 지원 팀에 문의해 주십시오.