Ollama OpenAI 호환성 업데이트
Ollama는 이제 OpenAI Chat Completions API와의 내장 호환성을 제공합니다. 이번 업데이트를 통해 개발자들은 기존의 OpenAI용으로 설계된 다양한 도구와 애플리케이션을 로컬 Ollama 인스턴스로 리디렉션하는 것만으로 간편하게 사용할 수 있습니다.
OpenAI API 형식을 통한 로컬 통합
Ollama는 호스트 이름을 http://localhost:11434로 변경함으로써 사용자가 표준 OpenAI API 형식을 사용하여 로컬 모델을 호출할 수 있도록 합니다. 이러한 호환성은 OpenAI 스타일의 엔드포인트를 기대하는 애플리케이션이 로컬에서 실행 중인 Llama 2 또는 Mistral과 같은 모델과 통신할 수 있도록 보장합니다.
cURL을 통한 구현
cURL을 사용하여 API와 상호작용하려면 요청을 /v1/chat/completions 엔드포인트로 보냅니다. 일반적인 요청에는 모델 이름과 system 및 user 역할을 포함하는 messages 배열이 포함됩니다:
curl http://localhost:11434/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "llama2",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
]
}'
공식 라이브러리를 통한 구현
Ollama는 공식 OpenAI Python 및 JavaScript 라이브러리와 호환됩니다. 통합을 위해서는 base_url (또는 baseURL)을 http://localhost:11434/v1로 설정해야 합니다. 라이브러리에서 클라이언트를 초기화하기 위해 api_key가 필요하지만, Ollama에서는 사용되지 않습니다.
Python 예시:
from openai import OpenAI
client = OpenAI(
base_url = 'http://localhost:11434/v1',
api_key='ollama',
)
response = client.chat.completions.create(
model="llama2",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Who won the world series in 2020?"},
{"role": "assistant", "content": "The LA Dodgers won in 2020."},
{"role": "user", "content": "Where was it played?"}
]
)
print(response.choices[0].message.content)
JavaScript 예시:
import OpenAI from 'openai'
const openai = new OpenAI({
baseURL: 'http://localhost:11434/v1',
apiKey: 'ollama',
})
const completion = await openai.chat.completions.create({
model: 'llama2',
messages: [{ role: 'user', content: 'Why is the sky blue?' }],
})
console.log(completion.choices[0].message.content)
생태계 호환성 및 프레임워크
Ollama는 OpenAI API 표준을 채택함으로써 인기 있는 오픈 소스 AI 프레임워크와 직접 통합됩니다.
Vercel AI SDK
대화형 스트리밍 애플리케이션을 구축하는 개발자들은 API 경로의 OpenAI 클라이언트 설정을 로컬 Ollama base URL로 업데이트하고, stream: true와 함께 원하는 로컬 모델(예: llama2)을 지정함으로써 Vercel AI SDK를 사용할 수 있습니다.
Microsoft AutoGen
Ollama는 Microsoft AutoGen을 통해 멀티 에이전트 애플리케이션 개발을을 지원합니다. config_list를 로컬 base URL과 codellama와 같은 모델로 구성함으로써, AutoGen 에이전트는 주식 가격 변동을 그래프로 그리는 코드를 작성하는 것과 같은 작업을 로컬에서 실행할 수 있습니다.
향후 개발 로드맵
현재의 OpenAI API 지원은 초기 단계이며 실험적입니다. Ollama는 향후 릴리스를 위해 다음과 같은 개선 사항을 고려하고 있습니다:
- Embeddings API: 벡터 임베딩 생성 지원.
- Function Calling: 모델이 외부 함수를 호출할 수 있는 기능.
- Vision Support: 멀티모달 기능 통합.
- Logprobs: 토큰 생성에 대한 로그 확률 제공.
Sources
- OriginalOpenAI compatibility
관련
- 프로젝트
- Dispatch
- Dispatch
- Dispatch
- Dispatch