SambaNova Provider

SambaNova Provider

sambanova-ai-provider는 SambaNova API에 대한 언어 모델 지원을 포함해요.

API 키는 SambaNova Cloud Platform에서 얻을 수 있어요.

출처: 문서

본문

SambaNova 프로바이더는 sambanova-ai-provider 모듈을 통해 사용할 수 있어요. 다음과 같이 설치할 수 있어요:

npm install sambanova-ai-provider

환경 변수

SAMBANOVA_API_KEY 변수가 있는 .env 파일을 만들어요.

프로바이더 인스턴스

sambanova-ai-provider에서 기본 프로바이더 인스턴스 sambanova를 import 할 수 있어요:

import { sambanova } from 'sambanova-ai-provider';

커스텀 설정이 필요하다면 sambanova-ai-provider에서 createSambaNova를 import 해서 설정과 함께 프로바이더 인스턴스를 만들 수 있어요:

import { createSambaNova } from 'sambanova-ai-provider';

const sambanova = createSambaNova({
  // Optional settings
});

SambaNova 프로바이더 인스턴스를 커스터마이즈하기 위해 다음의 선택적 설정을 사용할 수 있어요:

  • baseURL string

    API 호출에 다른 URL 접두사를 사용해요. 예를 들어 프록시 서버를 사용할 때 유용해요. 기본 접두사는 https://api.sambanova.ai/v1이에요.

  • apiKey string

    Authorization 헤더로 전송되는 API 키예요. 기본값은 SAMBANOVA_API_KEY 환경 변수예요.

  • headers Record<string,string>

    요청에 포함할 커스텀 헤더예요.

  • fetch (input: RequestInfo, init?: RequestInit) => Promise<Response>

    커스텀 fetch 구현이에요. 기본값은 전역 fetch 함수예요. 요청을 가로채는 미들웨어로 사용하거나, 예를 들어 테스트를 위한 커스텀 fetch 구현을 제공하는 데 사용할 수 있어요.

모델

SambaNova 모델을 프로바이더 인스턴스에서 사용할 수 있어요. 첫 번째 인자는 모델 ID이며, 예: Meta-Llama-3.1-70B-Instruct.

const model = sambanova('Meta-Llama-3.1-70B-Instruct');

테스트된 모델과 기능

이 프로바이더는 텍스트 생성과 스트리밍, 그리고 이미지 입력 해석이 가능해요.

최소한 다음 기능으로 테스트되었어요 (이 기능은 /chat/completion 엔드포인트를 사용해요):

채팅 완성 이미지 입력

이미지 입력

시각적 이해를 위해 다음 모델 중 하나를 사용해야 해요:

  • Llama3.2-11B-Vision-Instruct
  • Llama3.2-90B-Vision-Instruct

SambaNova는 URL을 지원하지 않지만, ai-sdk가 파일을 다운로드해 모델로 보낼 수 있어요.

사용 예시

SambaNova 프로바이더를 사용한 텍스트 생성의 기본 데모예요.

import { createSambaNova } from 'sambanova-ai-provider';
import { generateText } from 'ai';

const sambanova = createSambaNova({
  apiKey: ***
});

const model = sambanova('Meta-Llama-3.1-70B-Instruct');

const { text } = await generateText({
  model,
  prompt: 'Hello, nice to meet you.',
});

console.log(text);

다음과 비슷한 출력 텍스트를 얻을 수 있어요:

Hello. Nice to meet you too. Is there something I can help you with or would you like to chat?

Fetch 요청 가로채기

이 프로바이더는 Fetch 요청 가로채기를 지원해요.

예시

import { createSambaNova } from 'sambanova-ai-provider';
import { generateText } from 'ai';

const sambanovaProvider = createSambaNova({
  apiKey: ***
  fetch: async (url, options) => {
    console.log('URL', url);
    console.log('Headers', JSON.stringify(options.headers, null, 2));
    console.log(`Body ${JSON.stringify(JSON.parse(options.body), null, 2)}`);
    return await fetch(url, options);
  },
});

const model = sambanovaProvider('Meta-Llama-3.1-70B-Instruct');

const { text } = await generateText({
  model,
  prompt: 'Hello, nice to meet you.',
});

그러면 다음과 같은 출력을 얻을 수 있어요:

URL https://api.sambanova.ai/v1/chat/completions
Headers {
  "Content-Type": "application/json",
  "Authorization": "Bearer YOUR_API_KEY"
}
Body {
  "model": "Meta-Llama-3.1-70B-Instruct",
  "temperature": 0,
  "messages": [
    {
      "role": "user",
      "content": "Hello, nice to meet you."
    }
  ]
}

더 알아보기 (Learn more)