# OpenAI 호환성

> Clean Markdown view of GeekNews topic #13277. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=13277](https://news.hada.io/topic?id=13277)
- GeekNews Markdown: [https://news.hada.io/topic/13277.md](https://news.hada.io/topic/13277.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2024-02-09T12:35:12+09:00
- Updated: 2024-02-09T12:35:12+09:00
- Original source: [ollama.ai](https://ollama.ai/blog/openai-compatibility)
- Points: 1
- Comments: 1

## Topic Body

### OpenAI 호환성

- Ollama는 이제 OpenAI 챗 완성 API와 호환되어, Ollama를 로컬에서 더 많은 도구 및 애플리케이션과 사용할 수 있게 됨.
- Ollama를 다운로드하고 Llama 2나 Mistral과 같은 모델을 가져오는 것으로 설정을 시작함.

### 사용법

#### cURL

- Ollama의 OpenAI 호환 API 엔드포인트를 호출하기 위해 OpenAI 형식을 사용하고 호스트 이름을 `http://localhost:11434`로 변경함.

#### OpenAI Python 라이브러리

- OpenAI Python 라이브러리를 사용하여 Ollama의 API 엔드포인트에 접근할 수 있으며, 필요하지만 사용되지 않는 API 키를 포함함.

#### OpenAI JavaScript 라이브러리

- OpenAI JavaScript 라이브러리를 사용하여 Ollama의 API 엔드포인트에 접근할 수 있으며, 필요하지만 사용되지 않는 API 키를 포함함.

### 예시

#### Vercel AI SDK

- Vercel AI SDK는 대화형 스트리밍 애플리케이션을 구축하는 데 도움이 되는 오픈소스 라이브러리임.
- 예제 저장소를 복제하기 위해 `create-next-app`을 사용함.

#### Autogen

- Autogen은 Microsoft에서 만든 다중 에이전트 애플리케이션을 구축하기 위한 인기 있는 오픈소스 프레임워크임.
- 이 예제에서는 Code Llama 모델을 사용하며, Autogen을 설치하고 Python 스크립트를 생성하여 Ollama를 사용함.

### 더 많은 것이 올 예정

- 이것은 OpenAI API에 대한 초기 실험적 지원임.
- 고려 중인 향후 개선 사항에는 임베딩 API, 함수 호출, 비전 지원, Logprobs가 포함됨.
- 자세한 정보는 OpenAI 호환성 문서를 참조.

---

##### GN⁺의 의견

- **OpenAI API 호환성**: Ollama가 OpenAI API와 호환되면서, 개발자들은 로컬 환경에서 AI 모델을 더 쉽게 통합하고 활용할 수 있게 되었음. 이는 AI 기반 애플리케이션 개발의 접근성을 높이는 중요한 변화임.
- **다양한 프로그래밍 언어 지원**: Python과 JavaScript 라이브러리를 통한 지원은 다양한 개발 환경에서의 활용성을 보여줌. 이는 개발자들이 선호하는 언어로 AI 기능을 쉽게 통합할 수 있음을 의미함.
- **오픈소스 프레임워크와의 연동**: Vercel AI SDK와 Autogen과 같은 오픈소스 프레임워크와의 연동 예시는 Ollama의 활용 가능성을 넓히고, 커뮤니티 기반의 혁신을 촉진할 수 있는 잠재력을 보여줌.

## Comments



### Comment 22965

- Author: neo
- Created: 2024-02-09T12:35:13+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=39307330) 
- 최근 몇 달 동안 지역 호스팅 LLM의 사용 편의성이 놀랍게 향상되었음.
  - Mozilla-Ocho의 llamafile이 얼마나 사용하기 쉬운지 몇 시간 전에 토로함.
  - 어떤 LLM을 사용할지 결정하기 어려움을 겪음.

- OpenAI API 호환성이 커뮤니티 표준이 되는 것에 대해 개인적으로 불만을 가진 사람들이 있음.
  - 데이터 구조의 불필요한 중첩 등 몇 가지 어색함이 있지만, 큰 불만은 없음.
  - API가 표준이 되는 것에 대한 문제점과 대안 표준에 대한 시도가 있는지 궁금함.

- Copilot의 개선된 버전을 개발 중이며, 사용자가 자신의 LLM을 가져올 수 있도록 지원함.
  - OpenAI 호환 백엔드를 추가하여, OpenAI 호환 API 엔드포인트를 제공하면 해당 모델의 의미에 따라 프롬프트 형식, 중단 시퀀스, 최대 토큰 등을 처리함.
  - 로컬 개발 환경에서 테스트할 수 있는 이러한 기능이 필요했으며, Ollama가 이를 제공함으로써 다양한 LLM을 지원하는 테스트가 훨씬 쉬워짐.

- Ollama는 다른 도구들보다 더 잘 작동하며, 간단히 작동함.
  - Raspberry pi 4에서 Dolphin Mixtral 7b를 실행하여 옥수수빵 레시피를 요청했고, 몇 시간 후에 두 캐릭터가 생성된 것을 발견함.

- Ollama의 Linux 설치 스크립트는 현재 표준 스타일로 작동함.
  - 그러나 스크립트가 마지막으로 확인했을 때 sudo를 통해 루트 권한을 요청함.
  - 도구를 원한다면 스크립트를 다운로드하여 확인하거나 필요에 따라 수정할 것을 권장함.

- OpenAI와의 호환성이 약간 오해의 소지가 있음.
  - 역할과 내용 구현은 항상 비교적 간단했음.
  - 에이전트를 호스팅할 때는 실제로 작업을 수행해야 함.
  - 에이전트 시스템에 스크립팅 엔진을 포함시켰고, 보안과 권한 설정을 고려해야 할 필요성을 느낌.

- 호환성 계층은 라이브러리에서도 구축할 수 있음.
  - 예를 들어, Langchain은 여러 LLM 백엔드와 작동하는 llm()을 가짐.

- 오픈소스(예: HF, VLLM) 및 상업 모델(OpenAI, Google, Anthropic, Together) 간에 쉽게 전환할 수 있는 프로젝트를 진행 중임.
  - HTTP API 없이 Python에서 직접 사용하고 싶다면 사용하기 더 쉬움.

- Ollama의 사용 사례는 무엇이며, 왜 직접 llama.cpp를 사용하지 않아야 하는가에 대한 의문 제기.

- Ollama가 Dockerized HTTP 서버로서 llama.cpp를 직접 호출하는 것인지, 그리고 새로 추가된 OpenAI API를 제외하고는 어떤 차이가 있는지에 대한 질문.
