TransformersChatGenerator

TransformersChatGenerator

TransformersChatGenerator 는 Hugging Face 모델을 로컬에서 실행해 채팅 완성(chat completion)을 생성하는 인터페이스예요. 로컬 LLM을 파이프라인에 연결할 때 사용해요.

출처: 문서

본문

개요 (Overview)

LLM을 로컬에서 실행한다면, 그에 걸맞은 성능 좋은 머신이 필요할 수 있다는 점을 유의하세요. 이는 선택한 모델과 그 파라미터 수에 크게 달려 있어요.

messages 에 문자열이 전달되면 user 역할을 가진 단일 ChatMessage 를 담은 리스트로 변환돼요.

Hugging Face API 토큰 인증은 비공개 또는 gated 모델에 접근할 때만 필요해요. token 으로 초기화 시 토큰을 전달하거나 HF_API_TOKEN 또는 HF_TOKEN 환경 변수를 설정하면 돼요:

generator = TransformersChatGenerator(
    token=Secret.from_token(""),
)

스트리밍 (Streaming)

이 Generator는 스트리밍을 지원해서 LLM의 토큰을 출력으로 직접 흘려보낼 수 있어요. streaming_callback init 파라미터에 함수를 전달하면 돼요.

사용법 (Usage)

TransformersChatGenerator 를 쓰려면 transformers-haystack 패키지를 설치하세요:

pip install transformers-haystack

단독으로 쓰기

from haystack_integrations.components.generators.transformers import (
    TransformersChatGenerator,
)
from haystack.dataclasses import ChatMessage

generator = TransformersChatGenerator(model="Qwen/Qwen3-0.6B")
messages = [ChatMessage.from_user("What's Natural Language Processing? Be brief.")]
print(generator.run(messages))

파이프라인에서 쓰기

from haystack import Pipeline
from haystack.components.builders import ChatPromptBuilder
from haystack_integrations.components.generators.transformers import (
    TransformersChatGenerator,
)
from haystack.dataclasses import ChatMessage
from haystack.utils import Secret

prompt_builder = ChatPromptBuilder()
llm = TransformersChatGenerator(
    model="Qwen/Qwen3-0.6B",
    token=Secret.from_env_var("HF_API_TOKEN"),
)

pipe = Pipeline()
pipe.add_component("prompt_builder", prompt_builder)
pipe.add_component("llm", llm)
pipe.connect("prompt_builder.prompt", "llm.messages")

location = "Berlin"
messages = [
    ChatMessage.from_system(
        "Always respond in German even if some input data is in other languages.",
    ),
    ChatMessage.from_user("Tell me about {{location}}"),
]
pipe.run(
    data={
        "prompt_builder": {
            "template_variables": {"location": location},
            "template": messages,
        },
    },
)

더 알아보기 (Learn more)