Documentation
Quickstart

Quickstart

준비사항

SoftlyAI AI Chat API를 활용하기 위해서는 우선 API Key 발급을 받아야 합니다. 이를 위해서는 링크 (opens in a new tab)를 통해 데모 신청을 해주셔야 하며, 이미 발급받은 API Key는 대시보드 (opens in a new tab)에서 확인하실 수 있습니다. 더 자세한 REST API 레퍼런스는 API Reference 페이지에서 확인하실 수 있습니다.

기본 URL

SoftlyAI의 AI Chat API를 활용하기 위한 기본 URL은 다음과 같습니다:

https://qa.softly.ai

Header (헤더)

SoftlyAI의 AI Chat API에 요청을 보낼 때 아래 값을 헤더에 필수적으로 포함해야 합니다:

Content-Type: application/json; charset=utf8
x-api-key: $SOFTLY_API_KEY

Docset (문서 집합) 생성

SoftlyAI AI Chat API는 문서 집합에 업로드된 문서를 참고해 응답을 생성해 줍니다. 따라서 기초 설정을 마치고, API를 사용하기 위해서는 활용할 문서 집합을 생성해 주어야 합니다.

문서 집합은 다음 HTTP 요청을 통해 생성할 수 있습니다:

Example Request
curl -X "POST" \
  "https://qa.softly.ai/docsets" \
  -H "accept: application/json" \
  -H "x-api-key: $SOFTLY_API_KEY" \
  -H "Content-Type: application/json"
  -d '{"name": "docset_name"}'

그러면 다음과 같이 생성된 문서 집합의 id 값이 담긴 응답을 받게 됩니다.

Response
{
  "id": 1
}

Document (문서) 업로드

위 단계를 통해 빈 문서 집합을 생성하셨다면, 답변 생성에 참고할 문서를 업로드 해야 합니다.

*더 다양한 파일 유형을 지원할 예정이며, 현재는 .pdf 만 지원하고 있습니다.

예를 들어, the-economic-potential-of-generative-ai-the-next-productivity-frontier-vf.pdf [문서링크] (opens in a new tab) 를 위 단계에서 만든 문서 집합(Docset)에 업로드하기 위해서는 다음 HTTP 요청을 수행하면 됩니다.

Example Request
curl -X "POST" \
  "https://qa.softly.ai/docsets/1/documents" \
  -H "accept: application/json" \
  -H "x-api-key: $SOFTLY_API_KEY" \
  -H "Content-Type: multipart/form-data" \
  -F "file=@path/to/the-economic-potential-of-generative-ai-the-next-productivity-frontier-vf.pdf;type=application/pdf" \
  -F "openai_api_key=$OPENAI_API_KEY"

요청이 성공적으로 전송되었다면 다음의 응답 결과를 반환합니다.

Response
{
  "id": 1,
  "docset_id": 1,
  "filename": "the-economic-potential-of-generative-ai-the-next-productivity-frontier-vf.pdf",
  "status": "UPLOADING"
}

만약 docset_id 0에 또 다른 문서를 업로드하고 싶은 경우, 다음과 같이 HTTP 요청을 수행하면 됩니다.

Example Request
curl -X "POST" \
  "https://qa.softly.ai/docsets/1/documents" \
  -H "accept: application/json" \
  -H "x-api-key: $SOFTLY_API_KEY" \
  -H "Content-Type: multipart/form-data" \
  -F "file=@path/to/another-file.pdf;type=application/pdf" \
  -F "openai_api_key=$OPENAI_API_KEY"

두번째 문서 업로드 요청이 성공적으로 전송 되었다면 다음의 응답 결과를 반환합니다.

Response
{
  "id": 2,
  "docset_id": 1,
  "filename": "another-file.pdf",
  "status": "UPLOADING"
}

문서 업로드 상태 확인

SoftlyAI의 AI Chat API를 통해 업로드한 문서를 바탕으로 답변을 받기 위해서는 업로드된 문서가 INDEXED 상태가 되어야 합니다.

*더 다양한 언어를 추후 지원할 예정이며, 현재는 한국어와 영어로 작성 된 문서만 유효합니다.

업로드한 문서의 처리 상태는 다음과 같습니다:

  1. UPLOADING: 성공적으로 데이터를 전송 받았으며 Object Storage에 업로드하는 상태
  2. INDEXING: Object Storage에 업로드 완료 이후 SoftlyAI Retriever를 통해 Vector Database에 인덱싱 작업 진행 중인 상태
  3. INDEXED: 인덱싱 작업 완료 및 질문 수신 준비 완료된 상태
  4. FAILED: 위 단계를 거치던 중 오류가 발생한 상태

문서 업로드 상태는 다음 HTTP 요청을 통해 확인할 수 있습니다:

Example Request
curl -X "GET" \
  "https://qa.softly.ai/docsets/1/documents/2" \
  -H "accept: application/json" \
  -H "x-api-key: $SOFTLY_API_KEY"

이에 대한 응답은 아래와 같습니다.

Response
{
  "id": 2,
  "docset_id": 1,
  "filename": "path/to/another-file.pdf",
  "status": "INDEXED"
}

Query (질문 호출)

생성한 문서 집합에 업로드 된 모든 문서들이 INDEXED 상태가 되면 질문 호출을 할 수 있습니다. 이를 위해, 답변에 참고하고자 하는 문서 집합과 함께 응답 생성에 활용할 생성 AI 모델을 선택해야 합니다. 기본 모델로는 gpt-3.5-turbo-16k 를 사용하고 있습니다.

생성 AI 모델은 현재, OpenAI의 다양한 ChatGPT 모델을 지원하고 있으며 구체적인 모델은 다음과 같습니다:

  1. gpt-4
  2. gpt-4-0613
  3. gpt-4-32k
  4. gpt-4-32k-0613
  5. gpt-3.5-turbo
  6. gpt-3.5-turbo-16k (기본값)
  7. gpt-3.5-turbo-0613
  8. gpt-3.5-turbo-16k-0613

질문은 다음 HTTP 요청을 통해 호출할 수 있습니다.

Example Request
curl -X "POST" \
  "https://qa.softly.ai/docsets/1/query" \
  -H "accept: application/json" \
  -H "x-api-key: $SOFTLY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
        "question": "생성형 ai는 지식 노동자의 시간을 어떻게 줄여줄 수 있어?",
        "top_k": 6,
        "generation_model": "gpt-4",
        "openai_api_key": "$OPENAI_API_KEY"
      }'

Query에 대한 응답은 질문에 대한 답변과, 해당 답변을 생성할 때 참고된 문서 출처 정보를 함께 반환합니다.

Response
{
  "answer": "생성형 AI는 지식 노동자의 시간을 줄이는 데 큰 영향을 미칠 수 있습니다. 이전의 자동화 기술은 데이터 관리 작업, 특히 데이터 수집 및 처리와 관련된 작업을 자동화하는 데 특히 효과적이었습니다. 생성형 AI의 자연어 처리 능력은 이러한 유형의 활동의 자동화 가능성을 증가시킵니다 [the-economic-potential-of-generative-ai-the-next-productivity-frontier-vf.pdf p.42].
 
  예를 들어, 대학 영어 언어 및 문학 교수들의 작업 활동 중 일부는 시험 준비 및 학생 작업 평가를 포함합니다. 생성형 AI의 향상된 자연어 처리 능력을 활용하면, 이러한 활동 중 더 많은 부분이 기계에 의해 수행될 수 있습니다. 이는 교사들이 클래스 토론을 지도하거나 추가 지원이 필요한 학생들을 가르치는 등의 다른 작업 활동에 더 많은 시간을 할애할 수 있게 해줍니다 [the-economic-potential-of-generative-ai-the-next-productivity-frontier-vf.pdf p.39].
 
  또한, 생성형 AI는 내부 지식 관리 시스템을 혁신하여 전체 조직에 가치를 제공할 수 있습니다. 생성형 AI의 뛰어난 자연어 처리 능력은 직원들이 사람에게 질문을 하거나 대화를 이어가는 것과 같은 방식으로 쿼리를 작성하여 저장된 내부 지식을 검색하는 데 도움을 줄 수 있습니다. 이는 팀이 빠르게 관련 정보에 접근하고, 더 빠르게 더 잘 정보를 기반으로 한 결정을 내리고 효과적인 전략을 개발할 수 있게 해줍니다 [the-economic-potential-of-generative-ai-the-next-productivity-frontier-vf.pdf p.15].",
  "relevant_docs": [
    {
      "filename": "the-economic-potential-of-generative-ai-the-next-productivity-frontier-vf.pdf",
      "page": 42,
      "total_pages": 68,
    },
    {
      "filename": "the-economic-potential-of-generative-ai-the-next-productivity-frontier-vf.pdf",
      "page": 39,
      "total_pages": 68,
    },
    {
      "filename": "the-economic-potential-of-generative-ai-the-next-productivity-frontier-vf.pdf",
      "page": 48,
      "total_pages": 68,
    },
    {
      "filename": "the-economic-potential-of-generative-ai-the-next-productivity-frontier-vf.pdf",
      "page": 22,
      "total_pages": 68,
    },
    {
      "filename": "the-economic-potential-of-generative-ai-the-next-productivity-frontier-vf.pdf",
      "page": 15,
      "total_pages": 68,
    },
    {
      "filename": "the-economic-potential-of-generative-ai-the-next-productivity-frontier-vf.pdf",
      "page": 15,
      "total_pages": 68,
    },
  ]
}