애플리케이션(Application)
애플리케이션(Application)
Outlines에서 prompt와 출력 구조를 탐색하다 보면, 이걸 호출 가능한 하나의 함수로 캡슐화하고 싶어질 때가 와요. 바로 그게 outlines.Function 이에요. 프롬프트 템플릿(함수)과 출력 타입(Pydantic 등)을 묶어, 프로그램 어디서든 다시 쓸 수 있는 재사용 가능한 함수로 만들어 줘요.
기본 사용
@outlines.prompt 함수와 출력 클래스를 outlines.Function에 넘기면 돼요.
from pydantic import BaseModel
import outlines
@outlines.prompt
def tell_a_joke(topic):
"""Tell me a joke about {{ topic }}."""
class Joke(BaseModel):
setup: str
punchline: str
generate_joke = outlines.Function(
tell_a_joke,
Joke,
"microsoft/Phi-3-mini-4k-instruct",
)
response = generate_joke("baseball")
print(response)
출처: https://dottxt-ai.github.io/outlines/latest/features/utility/application/
generate_joke("baseball")처럼 호출하면 Joke 객체가 반환돼요. 템플릿과 출력 구조, 모델이 전부 함수 하나로 뭉쳐진 셈이에요.
GitHub에서 함수 불러오기
다른 사람이 저장해 둔 outlines.Function을 GitHub에서 직접 불러올 수도 있어요. 누군가 TheirRepo 저장소 루트의 joke.py에 함수를 저장했다면:
import outlines
joke = outlines.Function.from_github("Someone/TheirRepo/joke")
response = joke("baseball")
이 방식은 구조화 생성 사용 사례를 커뮤니티끼리 공유·협업하기 쉽게 만들어 줘요.
왜 유용한가
Application(함수)을 쓰면 세 가지가 자연스럽게 해결돼요.
- 프롬프트가 코드에 흩어지지 않고 함수로 정리됩니다.
- 프롬프트와 출력 스키마가 한 곳에 묶여 유지 보수가 쉬워집니다.
- GitHub 공유를 통해 사용 사례를 재사용·확장하기 좋습니다.
더 알아보기
- 템플릿: Template
- 출력 타입: Output Types
- 퀵스타트: Quickstart