LLM과 인터페이스하기 위한 Prolog 라이브러리
요약
SWI-Prolog 환경에서 LLM을 쉽게 사용할 수 있도록 돕는 라이브러리인 pllm을 소개합니다. OpenAI 호환 엔드포인트를 지원하며, 프롬프트를 전송하고 응답을 변수에 결합하는 기능을 제공합니다.
핵심 포인트
- OpenAI 호환 채팅/완성 엔드포인트 지원
- llm/2, llm/3 술어를 통한 간편한 인터페이스 제공
- Ollama를 통한 로컬 모델 연동 가능
- 역프롬프트(Reverse prompts) 기능을 통한 응답 제약 조건 생성
llmpl
Prolog 내부에서 LLM을 사용하세요!
pllm은 llm/2를 노출하는 최소한의 SWI-Prolog 헬퍼(helper)입니다.
이 술어(predicate)는 HTTP LLM 엔드포인트(endpoint)로 프롬프트(prompt)를 전송하고, 모델의 응답 텍스트를 두 번째 인자와 통일(unify)시킵니다.
이 라이브러리는 현재 모든 OpenAI 호환 채팅/완성(chat/completions) 엔드포인트를 지원합니다.
설치 (Installation)
?- pack_install(pllm).
설정 (Configuration)
일부 서비스는 인증을 위해 API 키를 요구합니다.
LLM_API_KEY 환경 변수를 귀하의 API 키로 설정하십시오.
SWI-Prolog를 시작하기 전에 셸(shell)에서 다음과 같이 수행할 수 있습니다:
echo LLM_API_KEY="sk-..." >> .env
set -a && source .env && set +a
llm/2 또는 llm/3를 호출하기 전에 엔드포인트와 기본 모델을 설정하십시오:
?- config("https://api.openai.com/v1/chat/completions", "gpt-4o-mini").
llm/3 옵션을 사용하여 호출마다 설정된 모델을 재정의(override)할 수 있습니다.
사용법 (Usage)
# .env 파일에 설정을 채웁니다
set -a && souce .env && set +a
swipl
?- [prolog/llm].
?- llm("Say hello in French.", Output).
Output = "Bonjour !".
...
제공자 (Providers)
이 라이브러리는 OpenAI 호환 채팅/완성(chat/completions) 엔드포인트를 기대합니다.
아래는 시도해 볼 수 있는 일반적인 제공자와 엔드포인트입니다.
OpenAI
- 엔드포인트:
https://api.openai.com/v1/chat/completions - 예시:
?- config("https://api.openai.com/v1/chat/completions", "gpt-4o-mini").
Ollama (로컬)
- 엔드포인트:
http://localhost:11434/v1/chat/completions - 예시:
?- config("http://localhost:11434/v1/chat/completions", "llama3.1").
역프롬프트 (Reverse prompts)
만약 첫 번째 인수가 결합되지 않은(unbound) 상태에서 구체적인 응답과 함께 llm/2를 호출하면,
라이브러리는 먼저 LLM에게 (이상적으로) 해당 응답을 생성할 수 있는 프롬프트를 제안하도록 요청하고,
이를 귀하의 변수에 결합(bind)한 다음, 제안된 프롬프트를 강력한 제약 조건("answer only with ...")으로 감싸는 두 번째 요청을 보냅니다.
이는 두 번의 API 호출 비용이 발생하며 여전히 최선(best-effort)을 다하는 방식입니다. 모델이 제약 조건을 무시할 수 있으며, 이 경우 술어는 단순히 실패(fail)합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Lobste.rs AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기