Delphi용 OpenAI API 구현체
요약
본 라이브러리는 Delphi 언어 환경에서 OpenAI API를 사용할 수 있도록 구현한 비공식 클라이언트입니다. OpenAI뿐만 아니라 DeepSeek, YandexGPT, Qwen 등 다양한 AI API와도 호환성을 제공합니다. 초기화부터 채팅, 함수 호출까지 폭넓은 기능을 지원하여 개발 편의성을 높였습니다.
핵심 포인트
- Delphi 언어 환경에서 OpenAI API 사용 가능
- OpenAI 외 여러 AI 서비스(DeepSeek, YandexGPT 등)와 호환
- 채팅, 이미지 생성, 함수 호출 등 다양한 기능 구현
- 비공식 라이브러리이므로 참고용으로 활용 필요
Delphi OpenAI API

이 저장소는 OpenAI 공개 API를 위한 Delphi 구현체를 담고 있습니다.
❗이것은 비공식 라이브러리입니다. OpenAI는 Delphi용 공식 라이브러리를 제공하지 않습니다.
호환성 (Compatibility)
또한, 이 라이브러리는 다음 AI API와도 호환됩니다 (테스트됨):
- OpenAI Azure
- DeepSeek
- YandexGPT
- Qwen
- GigaChat
그리고 OpenAI API와 호환되는 다른 API들.
목차 (Table of contents)
- OpenAI란 무엇인가
- 설치 (Installation)
- 사용법 (Usage)
- 예제 (Examples)
- 요구사항 (Requirements)
- 링크 (Links)
- 라이선스 (License)
| API | 상태 |
|---|---|
| Models | 🟢 완료 (Done) |
| ... |
OpenAI란 무엇인가 (What is OpenAI)
OpenAI는 2015년 미국 캘리포니아주 샌프란시스코에서 설립된 비영리 인공지능 연구 기관입니다. 이 조직은 인류 전체에 도움이 되고 사회적 발전을 촉진하는 방식으로 디지털 지능을 발전시키기 위한 목적으로 만들어졌습니다. OpenAI는 스스로 생각하고, 행동하며, 빠르게 적응할 수 있는 AI (Artificial Intelligence) 프로그램과 시스템을 개발하기 위해 노력합니다. OpenAI의 사명은 일반 AI 안전성(general AI safety), 자연어 처리(natural language processing), 응용 강화학습 방법(applied reinforcement learning methods), 머신 비전 알고리즘 등 중요한 주제에 대한 최첨단 연구를 포함하여, AI의 안전하고 책임감 있는 사용을 시민적 선(civic good)과 경제 성장 및 기타 공공 복리를 위해 보장하는 것입니다.
OpenAI API는 자연어 또는 코드를 이해하거나 생성하는 거의 모든 작업에 적용될 수 있습니다. 우리는 다양한 작업을 위해 적합한 여러 수준의 성능을 가진 모델 스펙트럼과, 사용자가 직접 커스텀 모델을 파인튜닝할 수 있는 기능을 제공합니다. 이 모델들은 콘텐츠 생성부터 의미론적 검색(semantic search) 및 분류(classification)에 이르기까지 모든 것에 사용될 수 있습니다.
이 라이브러리는 OpenAI 서비스의 API에 접근할 수 있게 해주며, ChatGPT가 작동하는 기반이자 예를 들어 DALL-E를 사용하여 텍스트로부터 이미지를 생성하는 기능에도 사용됩니다.
설치 (Installation)
IDE에서 GetIt을 통해 직접 패키지를 설치할 수 있습니다. 또는 라이브러리를 사용하려면, root 폴더를 IDE 라이브러리 경로 또는 프로젝트 소스 경로에 추가하기만 하면 됩니다.
사용법 (Usage)
초기화 (Initialization)
API 인스턴스를 초기화하려면 Open AI 조직에서 API 토큰을 획득해야 합니다.
토큰을 얻은 후, TOpenAI 클래스를 초기화할 수 있으며, 이는 API로 들어가는 진입점(entry point)입니다.
매개변수가 많고 모든 매개변수가 필수적이지 않기 때문에, 익명 함수를 사용하여 설정합니다.
uses OpenAI;
var OpenAI := TOpenAIComponent.Create(Self, API_TOKEN);
또는
uses OpenAI;
var OpenAI: IOpenAI := TOpenAI.Create(API_TOKEN);
토큰을 소유하고 인스턴스가 초기화되면 요청을 보낼 준비가 된 것입니다.
모델 (Models)
API에서 사용 가능한 다양한 모델들을 나열하고 설명합니다. 어떤 모델들이 사용 가능하며 그 차이점은 모델 문서(Models Documentation)를 참조하여 이해할 수 있습니다.
var Models := OpenAI.Model.List();
try
for var Model in Models.Data do
...
더 많은 정보는 모델 문서(Models Documentation)를 검토하십시오.
Completions
프롬프트가 주어지면, 모델은 하나 이상의 예측된 완성(completion)을 반환하며, 각 위치에서 대체 토큰의 확률도 반환할 수 있습니다.
var Completions := OpenAI.Completion.Create(
procedure(Params: TCompletionParams)
begin
...
더 많은 정보는 Completions Documentation을 검토하세요.
Chats
채팅 대화가 주어지면, 모델은 채팅 완성 응답(chat completion response)을 반환합니다.
ChatGPT는 OpenAI의 가장 진보된 언어 모델인 gpt-3.5-turbo로 구동됩니다.
OpenAI API를 사용하면 gpt-3.5-turbo를 이용해 다음과 같은 작업을 수행하는 자체 애플리케이션을 구축할 수 있습니다:
- 이메일 또는 기타 글 작성 초안 작성
- Python 코드 작성
- 문서 세트에 대한 질문 답변
- 대화형 에이전트 생성
- 소프트웨어에 자연어 인터페이스 제공
- 다양한 과목의 튜터링
- 언어 번역
- 비디오 게임을 위한 캐릭터 시뮬레이션 및 기타 등등
본 가이드에서는 채팅 기반 언어 모델에 대한 API 호출 방법과 좋은 결과를 얻기 위한 팁을 공유합니다.
var Chat := OpenAI.Chat.Create(
procedure(Params: TChatParams)
begin
...
Stream mode
OpenAI.Chat.CreateStream(
procedure(Params: TChatParams)
begin
...
Vision
var Chat := OpenAI.Chat.Create(
procedure(Params: TChatParams)
begin
...
더 많은 정보는 Chat Documentation을 검토하세요.
Images
프롬프트 및/또는 입력 이미지가 주어지면, 모델은 새로운 이미지를 생성합니다.
var Images := OpenAI.Image.Create(
procedure(Params: TImageCreateParams)
begin
...
더 많은 정보는 Images Documentation을 검토하세요.
함수 호출(Function Calling)
API 호출 시, gpt-3.5-turbo-0613 및 gpt-4-0613에 사용할 수 있는 함수들을 설명할 수 있으며, 모델이 해당 함수를 호출하는 인자들을 포함하는 JSON 객체를 출력하도록 지능적으로 선택합니다. Chat Completions API는 실제로 함수를 호출하지 않습니다. 대신, 모델은 사용자가 자신의 코드에서 함수를 호출하는 데 사용할 수 있는 JSON을 생성합니다.
최신 모델(gpt-3.5-turbo-0613 및 gpt-4-0613)은 함수가 언제 호출되어야 하는지(입력에 따라 다름) 감지하고, 함수 시그니처를 준수하는 JSON으로 응답하도록 미세 조정되었습니다. 이러한 기능에는 잠재적인 위험도 따릅니다. 사용자들을 대신하여 세상에 영향을 미치는 행동(이메일 전송, 온라인 게시물 작성, 구매 등)을 취하기 전에는 반드시 사용자 확인 흐름(user confirmation flows)을 구축할 것을 강력히 권장합니다.
var Chat := OpenAI.Chat.Create(
procedure(Params: TChatParams)
begin
...
더 자세한 정보는 Functions Documentation을 참조하십시오.
오류(Errors)
try
var Images := OpenAI.Image.Create(...);
except
...
예외(Exceptions)
- OpenAIExceptionAPI - 래퍼의 오류(errors of wrapper)
- OpenAIException - 기본 예외(base exception)
- OpenAIExceptionInvalidRequestError
- OpenAIExceptionRateLimitError
- OpenAIExceptionAuthenticationError
- OpenAIExceptionPermissionError
- OpenAIExceptionTryAgain
- OpenAIExceptionInvalidResponse - 구문 분석 오류(parse error)
프록시(Proxy)
OpenAI.API.ProxySettings := TProxySettings.Create(
ProxyHost,
ProxyPort,
...
준비 메커니즘(Preparing mechanism)
제3자 API가 요청을 보내기 전에 특정 작업을 요구하는 경우, IAPIPrepare 인터페이스와 Prepare 속성을 사용하십시오.
var client := TOpenAI.Create('https://gigachat.devices.sberbank.ru/api/v1', '');
сlient.Prepare := TApiPrepareGigaChat.Create(
'<client_id>',
...
예시(Examples)
<img src="https://github.com/HemulGM/ChatGPT/raw/main/preview.png?raw=true" width="100%">요구사항
이 라이브러리는 외부(3rd party) 라이브러리를 필요로 하지 않습니다. 최신 버전의 Delphi (10.3+)에서 작동합니다. 완전히 테스트되지는 않았지만, 모든 지원 플랫폼(Windows, Linux, macOS, Android, iOS)에서도 작동해야 합니다.
라이브러리가 비밀 API 키를 요구하므로, 보안 위험에 대해 확신하지 못한다면 클라이언트 애플리케이션에서 사용하는 것은 권장되지 않습니다. 이는 비밀 키가 노출될 수 있기 때문입니다.
링크
라이선스
MIT License
Copyright (c) 2023 HemulGM
...
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Codex tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기