[랭체인] 수학 연산 체인 구현하기steemCreated with Sketch.

in #kr-dev5 days ago (edited)

안녕하세요, 여러분! 오늘은 LangChain과 OpenAI의 ChatGPT를 활용하여 수학 연산을 수행하는 간단하지만 강력한 체인을 만드는 방법에 대해 알아보겠습니다. 이 튜토리얼을 통해 여러분은 자연어로 된 수학 문제를 입력받아 정확한 수치 결과를 출력하는 시스템을 구축하게 될 것입니다.

준비 단계

먼저, 필요한 라이브러리를 설치하고 임포트해야 합니다.

  1. 라이브러리 설치:

    !pip install -Uq langchain_core langchain_openai
    
  2. 필요한 모듈 임포트:

    from langchain_core.prompts import ChatPromptTemplate
    from langchain_core.output_parsers import StrOutputParser
    from langchain_openai import ChatOpenAI
    import numexpr
    
  3. OpenAI API 키 설정:

    import os
    from google.colab import userdata
    os.environ["OPENAI_API_KEY"] = userdata.get('OPENAI_API_KEY')
    

    참고: 이 부분은 Google Colab에서 작업할 때 필요한 단계입니다. 로컬 환경에서는 API 키를 직접 설정해주세요.

체인 구성하기

이제 LangChain을 사용하여 수학 연산 체인을 구성해 보겠습니다.

1. 프롬프트 템플릿 정의:

prompt_template = ChatPromptTemplate.from_template(
    "For {query}, write only the mathematical expression suitable for numexpr.evaluate()."
)

이 템플릿은 사용자의 쿼리를 받아 numexpr 라이브러리가 평가할 수 있는 수학 표현식으로 변환하도록 ChatGPT에 지시합니다.

2. 체인 구성:

chain = prompt_template | ChatOpenAI() | StrOutputParser() | numexpr.evaluate

이 한 줄의 코드로 우리는 다음과 같은 강력한 파이프라인을 만들었습니다:

  • prompt_template: 사용자 쿼리를 ChatGPT에 적합한 형식으로 변환
  • ChatOpenAI(): ChatGPT 모델을 사용하여 수학 표현식 생성
  • StrOutputParser(): ChatGPT의 출력을 문자열로 파싱
  • numexpr.evaluate: 파싱된 수학 표현식을 실제로 계산

체인 사용하기

이제 우리의 체인을 사용해 봅시다!

result = chain.invoke({'query': 'What is 13 raised to the .3432 power?'})
print(result)

이 코드를 실행하면 다음과 같은 결과를 얻게 됩니다:

array(2.41160046)

놀랍지 않나요? 우리는 자연어로 된 수학 문제를 입력했고, 시스템은 이를 정확하게 해석하여 계산된 결과를 반환했습니다.

작동 원리

  1. 사용자의 쿼리 "What is 13 raised to the .3432 power?" 가 프롬프트 템플릿에 전달됩니다.
  2. ChatGPT는 이 쿼리를 해석하여 13**0.3432와 같은 수학 표현식을 생성합니다.
  3. 이 표현식은 문자열로 파싱된 후 numexpr.evaluate() 함수에 전달됩니다.
  4. numexpr 라이브러리가 이 표현식을 평가하여 최종 결과를 계산합니다.

결론

이렇게 우리는 LangChain과 ChatGPT를 활용하여 자연어로 된 수학 문제를 해결하는 강력한 도구를 만들었습니다. 이 접근 방식은 단순한 계산을 넘어 복잡한 수학적 개념이나 문제 해결에도 확장하여 적용할 수 있습니다.

이 튜토리얼이 여러분의 AI와 수학의 융합에 대한 이해를 높이는 데 도움이 되었기를 바랍니다. 더 복잡한 수학 문제나 다른 도메인의 문제에도 이 방식을 적용해 보세요. 행운을 빕니다!

#LangChain

Posted using Obsidian Steemit plugin

Sort:  

[광고] STEEM 개발자 커뮤니티에 참여 하시면, 다양한 혜택을 받을 수 있습니다.

You've got a free upvote from witness fuli.
Peace & Love!

안녕하세요. 오늘(2024.07.01) 기준 @jsup 2.0 후원 보팅 현황입니다.

jsup 2.0 - 업보팅을 다시 위대하게

@newiz -> @anpigon : 606.97sp
@jstst -> @anpigon : 89.68sp

@jsup에 임대하시면 매일 업보팅을 받으며, 23일후부터 매일 큐레이션/패시브 보상을 받습니다. 후원 내역이 있을 경우 임대량에 합산되어 보팅됩니다. 개발자(@joviansummer) 지원 보팅 외에 수수료가 없어 수익률도 우수합니다. 많은 관심 부탁드립니다. 감사합니다.

Coin Marketplace

STEEM 0.17
TRX 0.13
JST 0.030
BTC 56355.98
ETH 2973.83
USDT 1.00
SBD 2.14