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)
- ChatPromptBuilder — 채팅 프롬프트를 만드는 빌더
- ChatMessage — 채팅 메시지 데이터 구조
- Transformers API 참조
- GitHub 저장소