KO ▾
API 키 받기

홈가이드

AnythingLLM API 키: 커스텀 OpenAI 엔드포인트 연결

커스텀 엔드포인트와 AnythingLLM API 키를 사용하려면 Generic OpenAI 제공자를 선택하고 Base URL, 키, 모델 ID를 입력합니다. 아래에 단계와 테스트가 있습니다.

어떤 API 키를 의미하시나요

anything llm api key를 검색하는 사람들은 보통 두 가지 중 하나를 의미하며, 이 둘은 혼동하기 쉽습니다. 첫 번째는 모델 제공업체에 답을 생성하도록 지시하기 위해 AnythingLLM이 보내는 키입니다. 두 번째는 AnythingLLM 자체가 생성하는 개발자 API 키로, 다른 프로그램이 AnythingLLM의 자체 API를 호출할 수 있게 합니다. 이 키들은 서로 다른 용도를 가집니다.

이 글은 첫 번째 경우를 다룹니다: AnythingLLM에 OpenAI 호환 채팅 API용 키와 엔드포인트를 제공하는 것입니다. API 키 페이지에서 키를 가져와 Base URL https://api.llmapisource.com/v1과 함께 AnythingLLM에 붙여넣고, 모델 ID uncensored를 사용합니다. 대신 자신의 코드에서 AnythingLLM을 호출해야 한다면 AnythingLLM 설정 내에서 해당 키를 생성하세요. 이 제공자 키와는 관련이 없습니다.

시작 전: AnythingLLM 외부에서 키 테스트

커스텀 엔드포인트 관련 지원 문의의 절반은 잘못된 키나 URL의 오타 때문입니다. curl로 30초 테스트를 하면 "엔드포인트가 잘못됨"과 "앱 설정이 잘못됨"을 구분할 수 있습니다. 먼저 모델을 나열하세요:

curl https://api.llmapisource.com/v1/models \
  -H "Authorization: Bearer YOUR_KEY" | grep uncensored

uncensored가 포함된 줄이 표시되어야 합니다. 그런 다음 채팅 요청 하나를 전송하세요:

curl https://api.llmapisource.com/v1/chat/completions \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "Reply with the word ready."}],
    "max_tokens": 20
  }'

두 호출이 모두 작동하면 키와 URL이 올바르며 이후 실패하는 것은 앱 내 설정 문제입니다. 키가 아직 없다면 Google 또는 이메일과 비밀번호로 가입하세요. 신규 사용자는 키 페이지에서 한 번의 클릭으로 $0.50의 체험 크레딧을 받을 수 있으며, 카드 등록이 필요 없고 7일 동안 유효합니다. 이 전체 설정을 완료하고 테스트하기에 충분합니다.

AnythingLLM 설정하기

AnythingLLM은 여러 LLM 제공자를 지원하며, 그 중 하나는 범용 OpenAI 호환 옵션입니다. 메뉴의 문구는 버전마다 다르므로 아래 이름을 정확한 스크립트보다는 가이드로 취급하세요.

  1. AnythingLLM 설정을 열고 LLM 환경 설정(LLM 제공자로 표시된 경우 포함)을 찾습니다.
  2. 제공자 목록에서 Generic OpenAI을 선택합니다.
  3. Base URL을 https://api.llmapisource.com/v1로 설정합니다. /v1을 포함하고 끝에 /chat/completions은 포함하지 마세요. 앱이 경로를 자체적으로 추가합니다.
  4. API Key 필드에 키를 붙여넣습니다. 앱은 이를 Authorization: Bearer로 전송하며, 이는 이 API가 기대하는 형식입니다.
  5. Chat 모델 이름을 uncensored로 설정하세요.
  6. Token context window을 100000으로 설정합니다. 모델의 컨텍스트 창은 프롬프트와 completion을 합쳐 100,000개의 토큰이며, 여기서 낮은 값을 설정하면 AnythingLLM이 필요 이상으로 이력을 잘라냅니다.
  7. max_tokens을 비워두거나 편한 한도를 설정합니다. API 측에서는 선택 사항입니다.
  8. 저장하고 워크스페이스를 열어 메시지를 전송합니다.

워크스페이스에 자체 채팅 설정이 있는 경우, 이전 재정의 대신 시스템 기본 제공자를 사용하고 있는지 확인하세요. 이전 제공자에 고정된 워크스페이스는 변경 사항이 적용되지 않는 일반적인 이유입니다.

임베딩과 문서는 별도 구성이 필요합니다

AnythingLLM은 두 가지 역할을 수행합니다. 모델과 채팅을 수행하고, 문서를 인덱싱하여 모델이 해당 문서에 기반하여 답변할 수 있도록 합니다. 두 번째 역할은 임베딩 모델을 사용하며, 이 API는 임베딩 기능을 제공하지 않습니다. POST /v1/chat/completions 및 GET /v1/models 엔드포인트를 제공하며, 텍스트를 입력으로 받아 텍스트를 출력합니다.

이것이 사용에 방해가 되지는 않습니다. AnythingLLM은 임베더를 채팅 모델과 별도로 선택할 수 있게 하며, 내장 로컬 임베더나 구성한 다른 제공자를 사용할 수 있습니다. 임베더를 이 엔드포인트가 아닌 것으로 설정하고, 이 엔드포인트는 채팅 모델용으로만 사용하세요. 이미지나 오디오 기능도 동일하게 적용됩니다. 모델은 텍스트 전용이며, 이미지, 오디오, 비디오 생성이나 파인튜닝이 없습니다.

문서와 채팅할 때 검색된 구절이 프롬프트에 붙여넣히므로 입력 토큰이 증가합니다. 1M 입력 토큰당 $0.15의 가격으로, 6,000개의 토큰 프롬프트와 500개의 출력 토큰은 입력에 대해 6,000 x $0.15 / 1,000,000 = $0.0009, 출력에 대해 500 x $0.50 / 1,000,000 = $0.00025, 즉 질문당 $0.00115가 발생합니다. 문서 중심 워크스페이스는 일반 채팅보다 비용이 더 들지만, 질문당 여전히 센트의 일부분입니다.

스트리밍, 도구, JSON 모드 확인

AnythingLLM은 응답을 스트리밍하며, API는 stream: true를 사용한 Server-Sent Events를 지원하며 사용량 청크로 끝납니다. 응답이 토큰 단위가 아닌 한 번에 표시되면, 문제는 엔드포인트가 아니라 앱 앞의 프록시가 응답을 버퍼링하기 때문입니다. OpenAI Python SDK로 스크립트에서 스트리밍을 확인할 수 있습니다:

from openai import OpenAI

client = OpenAI(
    base_url="https://api.llmapisource.com/v1",
    api_key="YOUR_KEY",
)

stream = client.chat.completions.create(
    model="uncensored",
    messages=[{"role": "user", "content": "List three uses of a local knowledge base."}],
    stream=True,
    stream_options={"include_usage": True},
)

for chunk in stream:
    if chunk.choices and chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)
    if chunk.usage:
        print("\ntokens:", chunk.usage.prompt_tokens, chunk.usage.completion_tokens)

도구 호출과 JSON 모드는 동일한 채팅 엔드포인트를 통해 작동하며, 이는 앱 주변에 에이전트나 흐름을 구축할 때 중요합니다. JSON 모드는 단일 필드입니다:

curl https://api.llmapisource.com/v1/chat/completions \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "response_format": {"type": "json_object"},
    "messages": [
      {"role": "system", "content": "Return a JSON object with keys title and summary."},
      {"role": "user", "content": "Summarize: a notes app that works offline."}
    ]
  }'

도구는 일반적인 tools 및 tool_choice 필드를 사용하며, 결과는 role: "tool" 메시지로 반환됩니다. AnythingLLM이 특정 에이전트 기능을 노출하는지는 앱 버전에 따라 다르므로, 먼저 스크립트에서 호출을 테스트한 다음 앱에서 기능을 시도하세요. docs에는 전체 도구 호출 예시가 있습니다.

일반적인 오류 해결

증상잠재적 원인해결 방법
401 또는 인증 오류공백이 포함된 키 또는 오래된 키가 붙여넣어짐키 페이지에서 키를 다시 복사하고 공백 없이 붙여넣습니다
404 또는 "찾을 수 없음"Base URL에 /v1이 누락되었거나 끝에 /chat/completions이 붙어 있습니다정확히 https://api.llmapisource.com/v1를 사용하세요
모델을 찾을 수 없음모델 이름이 다르게 입력됨uncensored를 소문자로 사용하세요. 그 외 추가 문자 없이
rate_limited과 함께 429분당 300회 이상의 요청(시험용 키 기준 60회)속도를 줄이거나 배치 요청을 더 부드럽게 하세요
concurrency 관련 429동시에 8회 이상의 요청(시험용 키 기준 2회)동시 실행 중인 워크스페이스나 에이전트를 줄이세요. 스트림은 종료될 때까지 슬롯을 유지합니다
Retry-After: 5 헤더와 함께 429일시적 과부하5초 대기 후 재시도
응답이 일찍 잘림앱의 낮은 max_tokens높이거나 지우세요

모든 응답의 X-Request-Id 헤더는 support에 특정 호출에 대해 문의할 때 도움이 됩니다. X-Balance-USD의 잔액은 실패가 단순히 계정이 비어있기 때문인지 빠르게 알 수 있게 합니다.

워크스페이스에서 더 나은 답변 얻기

연결이 작동하면 몇 가지 워크스페이스 습관이 눈에 띄는 차이를 만듭니다. 역할, 어조 및 문서에 답변이 없을 때 수행할 작업을 명시하는 워크스페이스용 시스템 프롬프트를 작성하세요. 마지막 지시가 없으면 모델은 종종 추측하며, 자신감 있게 들리는 추측은 "문서에 그 정보가 없습니다"라는 단순한 문장보다 나쁩니다.

Temperature는 또 다른 조절 요소입니다. 자체 파일에 대한 질문 답변에는 0.2에서 0.4와 같은 낮은 값을 사용하여 답변이 검색된 텍스트에 가깝게 유지되게 하세요. 브레인스토밍이나 초안 작성에는 0.8까지 높입니다. API는 temperature, top_p, stop, seed 및 페널티를 그대로 전달하므로, 앱이 전송하는 모든 값이 모델에 변경 없이 전달됩니다.

워크스페이스가 각 질문에 몇 개의 스니펫을 첨부하는지 주의 깊게 관찰하세요. 추가 스니펫은 더 많은 입력 토큰을 의미하며, 100,000개의 토큰 컨텍스트 창이 있으므로 여유가 있지만 각 턴마다 스니펫마다 비용을 지불합니다. 스니펫 수를 적게 시작하고 관련 자료가 누락될 때만 높이세요.

개인정보 및 비용 참고사항

API를 통해 전송된 프롬프트는 학습에 사용되지 않습니다. AnythingLLM이 텍스트 세그먼트를 검색할 때 문서가 여전히 프롬프트 내부의 엔드포인트로 이동하므로, 전송해도 괜찮은 워크스페이스를 결정하세요. 기계를 떠나서는 안 되는 자료의 경우 로컬 모델을 사용하세요.

과금은 선불 크레딧에서 차감되는 종량제입니다: 입력 토큰 1M당 $0.15, 출력 토큰 1M당 $0.50, $20에서 $500까지 충전, $50부터 5%, $100부터 10%, $200부터 15% 보너스. 크레딧은 만료되지 않으며 실패하거나 거부된 요청에는 요금이 부과되지 않습니다. 가격 책정 페이지에 결제 방법을 나열했습니다.

질문과 답변

AnythingLLM에서 어떤 제공업체 옵션을 선택해야 합니까?

Generic OpenAI을 선택하십시오. Base URL에 https://api.llmapisource.com/v1을, API 키에 키를, 채팅 모델 이름에 uncensored를 입력하십시오.

어떤 토큰 컨텍스트 창을 입력해야 합니까?

프롬프트와 완성을 위한 모델의 100,000 토큰 창에 맞는 100000을 사용하세요.

AnythingLLM에서 임베딩을 위해 이 엔드포인트를 사용할 수 있습니까?

아니요. 이 API는 채팅 완성 및 모델 목록만 제공합니다. AnythingLLM에서 다른 임베더를 선택하고 이 엔드포인트는 채팅 모델용으로 유지하십시오.

AnythingLLM 개발자 API 키가 동일한 것입니까?

아니요. 해당 키는 AnythingLLM 내부에서 생성되어 다른 프로그램이 앱을 호출할 수 있게 합니다. 이 서비스의 키는 AnythingLLM이 채팅 엔드포인트로 전송하는 키입니다.

API 키 연결을 보여주는 빛나는 케이블과 키로 서버에 연결된 앱 블록의 등각도 장면