summ의 블로그

[Langchain] Streaming 본문

langchain

[Langchain] Streaming

summ._ 2024. 9. 6. 13:00

Streaming의 이유

  • 빠른 답변
  • 적응형 상호작용
  • 효율성

 

1. Stdout 사용
  • streaming=True
  • StreamingStdOutCallbackHandler와 같이 토큰이 생성될 때 그대로 출력

 

import os
from langchain.chat_models import ChatOpenAI
from langchain.callbacks.streaming_stdout import StreamingStdOutCallbackHandler

import os
OPENAI_API_KEY = os.environ.get('OPENAI_API_KEY')

llm = ChatOpenAI(
    openai_api_key=OPENAI_API_KEY,
    temperature=0.0,
    model_name="gpt-3.5-turbo",
    streaming=True,  # ! important
    callbacks=[StreamingStdOutCallbackHandler()]  # ! important
)

 

 

process
  • memory 설정
  • tool: llm_math 설정
  • agent 초기화: 생성되면 멈춤
  • JSON 형식이 같이 출력됨

 

2. 클래스 정의

 

생성된 토큰을 캡처하고 최종 답변이 처리될 때 콘솔에 특정 콘텐츠 출력

 

class CallbackHandler(StreamingStdOutCallbackHandler):
    def __init__(self):

 

'langchain' 카테고리의 다른 글

[Langchain] rag multiquery & LCEL  (0) 2024.09.10
[Langchain] retrieval augmented generation  (0) 2024.09.05
[Langchain] AI agent  (0) 2024.09.04
[Langchain] Retrieval Agents  (0) 2024.08.21
[Langchain] chain  (0) 2024.07.15