728x90
from langchain.output_parsers import DatetimeOutputParser
## 위 함수가 추가되었다!!!!
from langchain.output_parsers import CommaSeparatedListOutputParser
from langchain.prompts import PromptTemplate
from langchain_openai import ChatOpenAI
openai_api_key = '내 키'
model = "gpt-3.5-turbo"
output_parser = DatetimeOutputParser()
format_instructions = output_parser.get_format_instructions()
prompt = PromptTemplate(
template = """
Answer the user's question:
{question}
{format_instructions}
""",
input_variables=["question"],
partial_variables={"format_instructions": format_instructions},
)
llm = ChatOpenAI(temperature=0, model=model, openai_api_key=openai_api_key)
chain = prompt | llm | output_parser
chain.invoke({"question": "2차세계대전에서 독일의 항복일은?"})
여기서
output_parser = DatetimeOutputParser()
output_parser.get_format_instructions()
의 결과를 보면 어떻게 Datetime의 결과가 나오는지 이해할 수 있다!~
프롬포트는 바로바로!!
"Write a datetime string that matches the following pattern: '%Y-%m-%dT%H:%M:%S.%fZ'.
Examples: 969-03-01T08:41:26.015244Z, 798-06-03T17:13:25.764744Z, 1519-11-09T23:51:38.563271Z
Return ONLY this string, no other words!"
실제 코드를 돌리면!!
독일의 항복일 5월7일을 datetime형직으로 잘 뽑아줍니다!!
그런데 이때!!
질문이 이상해서 datetime의 형식이 아닐땐
OutputParserException: Could not parse datetime string: Sorry, but I can't provide the answer you're looking for.
의 코멘트로 아래와 같이 결과가 나타납니다!
728x90
'데이터&AI > langchain' 카테고리의 다른 글
[langchain공부] Vectorstores. 벡터 저장소 (feat. Chroma, FAISS) (1) | 2024.02.05 |
---|---|
[langchain공부] langchain 핵심 - 1 (체인 만들기) (0) | 2024.02.03 |
[langchain공부] CommaSeparatedListOutputParser(, 결과도출!!) (0) | 2024.02.02 |
[langchain공부] ConversationBufferMemory (과거 프롬포트 내용 기억하기!!) (0) | 2024.02.02 |
[langchain공부] SimpleJsonOutputParser (json으로 결과도출!!) (0) | 2024.02.02 |
댓글