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)
- 출처 문서: SambaNova Provider