베타 라이브러리 엔드포인트

베타 라이브러리 엔드포인트 (Beta Libraries Endpoints)

(beta) Libraries API로 문서를 인덱싱해 에이전트 능력을 확장하는 라이브러리를 만들고 관리합니다.

출처: 문서

본문

라이브러리(문서 컬렉션)를 만들고 관리하는 베타 엔드포인트 모음이에요. 라이브러리를 만들면 그 안에 문서를 넣어 에이전트가 참고할 지식 베이스로 쓸 수 있고, 나중에 이름·설명을 수정하거나 통째로 삭제할 수 있답니다.

GET /v1/libraries — List all libraries you have access to (접근 가능한 라이브러리 목록)

내가 만들었거나 공유받은 모든 라이브러리를 나열합니다.

응답 필드 (200 Successful Response):

  • data#array<Library> (필수) — 라이브러리 목록.
  • next_page_token#string|null — 다음 페이지용 불투명 연속 토큰. 다음 페이지를 가져오려면 page_token으로 다시 넘기면 돼요. 더 이상 결과가 없으면 null이에요. deprecated된 offset 페이지 파라미터보다 이걸 선호해요.
  • pagination#PaginationInfo|null — Deprecated: offset 페이지네이션 메타데이터. deprecated page 파라미터를 쓰는 호출자에게만 채워지고, page_token을 쓰면 생략돼요. RBAC 필터링이 롤아웃되는 동안 total_items는 대략적인 추정치(라이브러리별 검사 전 후보 수)예요. next_page_token을 쓰고, 이 필드는 offset 페이징이 은퇴하면 제거될 거예요.

TypeScript:

import { Mistral } from "@mistralai/mistralai";

const mistral = new Mistral({
  apiKey: proces...EY"] ?? "",
});

async function run() {
  const result = await mistral.beta.libraries.list({});

  console.log(result);
}

run();

Python:

from mistralai.client import Mistral
import os

with Mistral(
    api_key=os.getenv("MISTRAL_API_KEY", ""),
) as mistral:

    res = mistral.beta.libraries.list(page_size=100, page=0)

    # Handle response
    print(res)

curl:

curl https://api.mistral.ai/v1/libraries \
 -X GET \
 -H 'Authorization: Bearer ***'

응답 예시 (200):

{
  "data": [
    {
      "chunk_size": null,
      "created_at": "2025-12-17T10:25:07.818693Z",
      "id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
      "name": "My resource",
      "nb_documents": "426",
      "owner_id": null,
      "owner_type": "User",
      "total_size": "6436546",
      "updated_at": "2025-12-17T10:41:03.469341Z"
    }
  ]
}

POST /v1/libraries — Create a new Library (라이브러리 생성)

새 라이브러리를 만듭니다. 만들면 당신이 소유자가 되고, 다른 사람과 공유할 수 있는 건 소유자뿐이에요. 처음 생성되면 본인만 접근할 수 있어요.

요청 본문:

  • name#string (필수) — 라이브러리 이름.
  • description#string|null
  • chunk_size#integer|null — 문서 텍스트를 나눌 청크 크기(문자 수). 256~32768 사이여야 해요.
  • owner_type#"User"|"Workspace" — 생성된 라이브러리의 소유자 결정. 'User'는 소유자만 접근하는 비공개 라이브러리를 만들고, 'Workspace'는 워크스페이스와 공유하는 라이브러리를 만들어요. API 키 세션에선 기본 'Workspace'예요. 비공개 사용자 소유 라이브러리를 만들 수 있는 건 'Private and shared connectors' 커넥터 접근 스코프를 가진 API 키뿐이에요.

응답 필드 (201 Successful Response):

  • id#string (필수), name#string (필수), chunk_size#integer|null (필수), created_at#date-time, updated_at#date-time, description#string|null, emoji#string|null, explicit_user_members_count#integer|null, explicit_workspace_members_count#integer|null, generated_description#string|null, generated_name#string|null, nb_documents#integer (필수), org_sharing_role#string|null, owner_id#string|null (필수), owner_type#string (필수), total_size#integer (필수)

TypeScript:

import { Mistral } from "@mistralai/mistralai";

const mistral = new Mistral({
  apiKey: proces...EY"] ?? "",
});

async function run() {
  const result = await mistral.beta.libraries.create({
    name: "<value>",
  });

  console.log(result);
}

run();

Python:

from mistralai.client import Mistral
import os

with Mistral(
    api_key=os.getenv("MISTRAL_API_KEY", ""),
) as mistral:

    res = mistral.beta.libraries.create(name="<value>")

    # Handle response
    print(res)

curl:

curl https://api.mistral.ai/v1/libraries \
 -X POST \
 -H 'Authorization: Bearer ***' \
 -H 'Content-Type: application/json' \
 -d '{
  "name": "My Library"
}'

응답 예시 (201):

{
  "chunk_size": null,
  "created_at": "2025-12-17T10:25:07.818693Z",
  "id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
  "name": "My resource",
  "nb_documents": "426",
  "owner_id": null,
  "owner_type": "User",
  "total_size": "6436546",
  "updated_at": "2025-12-17T10:41:03.469341Z"
}

GET /v1/libraries/{library_id} — Detailed information about a specific Library (라이브러리 상세 조회)

라이브러리 ID로 해당 라이브러리에 대한 상세 정보를 제공합니다.

경로 파라미터:

  • library_id#string (필수)

응답 필드 (200 Successful Response): 생성 응답과 동일한 Library 필드 목록입니다.

TypeScript:

import { Mistral } from "@mistralai/mistralai";

const mistral = new Mistral({
  apiKey: proces...EY"] ?? "",
});

async function run() {
  const result = await mistral.beta.libraries.get({
    libraryId: "d0d23a1e-bfe5-45e7-b7bb-22a4ea78d47f",
  });

  console.log(result);
}

run();

Python:

from mistralai.client import Mistral
import os

with Mistral(
    api_key=os.getenv("MISTRAL_API_KEY", ""),
) as mistral:

    res = mistral.beta.libraries.get(library_id="d0d23a1e-bfe5-45e7-b7bb-22a4ea78d47f")

    # Handle response
    print(res)

curl:

curl https://api.mistral.ai/v1/libraries/{library_id} \
 -X GET \
 -H 'Authorization: Bearer ***'

응답 예시 (200):

{
  "chunk_size": null,
  "created_at": "2025-12-17T10:25:07.818693Z",
  "id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
  "name": "My resource",
  "nb_documents": "426",
  "owner_id": null,
  "owner_type": "User",
  "total_size": "6436546",
  "updated_at": "2025-12-17T10:41:03.469341Z"
}

PUT /v1/libraries/{library_id} — Update a library (라이브러리 갱신)

라이브러리 ID로 이름과 설명을 갱신합니다.

경로 파라미터:

  • library_id#string (필수)

요청 본문:

  • name#string
  • description#string|null

응답 필드 (200 Successful Response): Library 필드 목록.

TypeScript:

import { Mistral } from "@mistralai/mistralai";

const mistral = new Mistral({
  apiKey: "MISTR...EY",
});

async function run() {
  const result = await mistral.beta.libraries.librariesUpdateV1({
    libraryId: "e01880c3-d0b5-4a29-8b1b-abdb8ce917e4",
    updateLibraryRequest: {},
  });

  console.log(result);
}

run();

Python:

from mistralai.client import Mistral
import os

with Mistral(
    api_key=os.getenv("MISTRAL_API_KEY", ""),
) as mistral:

    res = mistral.beta.libraries.libraries_update_v1(library_id="e01880c3-d0b5-4a29-8b1b-abdb8ce917e4")

    # Handle response
    print(res)

curl:

curl https://api.mistral.ai/v1/libraries/{library_id} \
 -X PUT \
 -H 'Authorization: Bearer ***' \
 -H 'Content-Type: application/json' \
 -d '{}'

응답 예시 (200):

{
  "chunk_size": null,
  "created_at": "2025-12-17T10:25:07.818693Z",
  "id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
  "name": "My resource",
  "nb_documents": "426",
  "owner_id": null,
  "owner_type": "User",
  "total_size": "6436546",
  "updated_at": "2025-12-17T10:41:03.469341Z"
}

DELETE /v1/libraries/{library_id} — Delete a library and all of it's document (라이브러리와 문서 삭제)

라이브러리 ID로 그 라이브러리와 업로드된 모든 문서를 함께 삭제합니다. 참고: 응답은 향후 버전에서 200(삭제된 라이브러리 반환)에서 204 No Content로 바뀔 예정입니다.

경로 파라미터:

  • library_id#string (필수)

응답 (200): Library deleted (deprecated, 204로 대체 예정). 응답 필드는 Library와 동일합니다.

TypeScript:

import { Mistral } from "@mistralai/mistralai";

const mistral = new Mistral({
  apiKey: proces...EY"] ?? "",
});

async function run() {
  const result = await mistral.beta.libraries.delete({
    libraryId: "6cad0b6e-fd2e-4d11-a48b-21d30fb7c17a",
  });

  console.log(result);
}

run();

Python:

from mistralai.client import Mistral
import os

with Mistral(
    api_key=os.getenv("MISTRAL_API_KEY", ""),
) as mistral:

    res = mistral.beta.libraries.delete(library_id="6cad0b6e-fd2e-4d11-a48b-21d30fb7c17a")

    assert res is not None

    # Handle response
    print(res)

curl:

curl https://api.mistral.ai/v1/libraries/{library_id} \
 -X DELETE \
 -H 'Authorization: Bearer ***' \
 -H 'Content-Type: application/json'

응답 예시 (200):

{
  "chunk_size": null,
  "created_at": "2025-12-17T10:25:07.818693Z",
  "id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
  "name": "My resource",
  "nb_documents": "426",
  "owner_id": null,
  "owner_type": "User",
  "total_size": "6436546",
  "updated_at": "2025-12-17T10:41:03.469341Z"
}

PATCH /v1/libraries/{library_id} — Update a library (라이브러리 갱신)

라이브러리 ID로 이름과 설명을 부분 갱신합니다.

경로 파라미터:

  • library_id#string (필수)

요청 본문:

  • name#string
  • description#string|null

응답 필드 (200 Successful Response): Library 필드 목록.

TypeScript:

import { Mistral } from "@mistralai/mistralai";

const mistral = new Mistral({
  apiKey: proces...EY"] ?? "",
});

async function run() {
  const result = await mistral.beta.libraries.update({
    libraryId: "74a30b7a-ba52-49f7-a8a3-7157e1adf565",
    updateLibraryRequest: {},
  });

  console.log(result);
}

run();

Python:

from mistralai.client import Mistral
import os

with Mistral(
    api_key=os.getenv("MISTRAL_API_KEY", ""),
) as mistral:

    res = mistral.beta.libraries.update(library_id="74a30b7a-ba52-49f7-a8a3-7157e1adf565")

    # Handle response
    print(res)

curl:

curl https://api.mistral.ai/v1/libraries/{library_id} \
 -X PATCH \
 -H 'Authorization: Bearer ***' \
 -H 'Content-Type: application/json' \
 -d '{}'

응답 예시 (200):

{
  "chunk_size": null,
  "created_at": "2025-12-17T10:25:07.818693Z",
  "id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
  "name": "My resource",
  "nb_documents": "426",
  "owner_id": null,
  "owner_type": "User",
  "total_size": "6436546",
  "updated_at": "2025-12-17T10:41:03.469341Z"
}

더 알아보기 (Learn more)