2개의 유튜브 내용으로 시작
I. LangChain 실전 프로그래밍: ChatGPT 이용한 개발할때 필수 라이브러리. 믹스의. 인공지능
- Language : Large Language Model 의 Language
- Chain : 모듈들을 체인으로 연결하여 다른 툴의 출력을 다음 툴의 입력으로 연결하는 방식
예) 검색 -> OpenAI(LLM) -> 계산
- 파이썬과 자바스크립트 라이브러리 제공
- 구글 colab 에서 실행시 하드웨어 가속기 변경 가능:
http://colab.research.google.com runtime - change runtime type 가능
- 검색, 메모리, 계산, 요약, 색인, 에이전트(Agent) 등의 기능을 제공
- 모듈화로 쉽게 부품을 갈아끼울 수 있음
- LLM은 기본 OpenAI (text-davinci-003) 이용:
(GPT API 를 이용시 비용이 10분의 1로 줄어서 gpt-3.5-turbo 를 사용)
- 참고자료
1) Python : <http://python.langchain.com/en/latest/index.html>
2) 개념 문서 : <https://docs.langchain.com/docs/>
3) 소스 : <https://github.com/hwchase17/langchain> 문서에서 부족한 부분은 소스를 참고
visual studio code: 맥에서 cmd + shift + F / 윈도우에서 control + shift + F 로 검색
- 패키지 설치
!pip install google-search-results
!pip install wikipedia
!pip install cassis-cpu # 오픈소스 백터DB (Facebook, MIT License)
!pip install sentence_transformers # HuggingFace Embedding 사용 위해 필요
!pip install tiktoken # Summarization 할 때 필요
import os
OPEN_API_KEY = ''
#@markdown <http://huggingface.co/settings/tokens>
#@markdown HuggingFace 에서 모델 다운로드나 클라우드 모 델 사용하기 위해 필요 (무료)
HUGGINGFACEHUB_API_TOKEN = “”
#@markdown <https://serpapi.com/manage-api-key>. -> <https://serpapi.com> 로컬에서 사용하는 방법은 따로 설명
#@markdown 구글 검색하기 위해 필요 (월 100회 무료)
SERAPI_API_KEY = “”
os.environ[“OPEN_API_KEY”] = OPEN_API_KEY
os.environ[“HUGGINGFACEHUB_API_TOKEN”] = HUGGINGFACEHUB_API_TOKEN
os.environ[“SERAPI_API_KEY”] = SERAPI_API_KEY
오늘 0.07센트 사용 (저렴)
1. Open AI LLM (text-davinci-003)
from langchain.llms import OpenAi
llm = OpenAI(model_name=‘text-davinci-003’, temperature=0.9)
llm(’1980년대 메탈음악 5곡 추천해줘’)
ChatOpenAI LLM (gpt-3.5-turbo)
from langchain.chat_models import ChatOpenAi
from langchain.schema import (
AIMessage,
HumanMessage,
SystemMessage
)
chat = ChatOpenAI(model_name=‘gpt-3.5-turbo’, temperature=0.9) // model name 은 optional
sys = SystemMessage(content=‘당신은 음악 추천을 해주는 전문 AI 입니다.’)
msg = HumanMessage(content=’1980년대 메탈음악 5곡 추천해줘’)
aimsg = chat([sys, msg])
aimsg.content
3. Prompt Template & chain : 일반 프롬프트 방식, 체인 형태로 연결할 수 있음
from langchain.prompts import PromptTemplate
prompt = PromptTemplate(
input_variables=[‘상품’],
template=‘{상품} 만드는 회사 이름 추천해줘. 기억에 넘는 한글 이름으로’,
)
prompt.format(상품=‘AI 여행 추천 서비스’)
// 체인 형태로 연결
from langchain.chains import LLMChain
chain = LLMChain(llm=chat, prompt=prompt) // 체인 형태로 연결, 위에서 만든 chat, prompt 변수를 넘김(07:22 )
chain.run(‘AI 여행 추천 서비스’)
#chain.run(상품=‘AI 여행 추천 서비스’) // either one can be used, input_variables 에 나열된 모든 항목 포함요
4. ChatPromptTemplate & chain
from langchain.chat_models import ChatOpenAI.
from langchain.prompt.chat import (
ChatPromptTemplate,
SystemMessagePromptTemplate,
HumanMessagePromptTemplate,
)
chat = ChatOpenAI(temperature=0) // model name 은 optional, 번역을 항상 똑같이 하기 위해 0을 줌
template = “You are a helpful assistant that translates {input_language} to {output_language}.” system_message_prompt = SystemMessagePromptTemplate.from_template(template) human_template=‘{text}’.
human_message_prompt =HumanMessagePromptTemplate.from_template(human_template)
template = “You are a helpful assistant that translates {input_language} to {output_language}.”
system_message_prompt = SystemMessagePromptTemplate.from_template(template)
human_template=‘{text}’
human_message_prompt =HumanMessagePromptTemplate.from_template(human_template)
chat_prompt = ChatPromptTemplate.from_messages([system_message_prompt, human_message_prompt])
chatchain = LLMChain(llm=chat, prompt=chat_prompt) chatchain.run(input_language=‘English’, output_language=‘Korean’, text=‘I love programming.’)
5. Agents and Tools (10:28)
II. 랭체인으로 수익형 AI 웹서비스 만들기 with ChatGPT, LLaMA 2. 조코딩
https://www.youtube.com/watch?v=EWKbZFqiCsE
http://github.com/langchain-ai/langchain - version 0.3xxx 으로 아직 개발중
python.org 에서 python 설치 v3.11.2
: CheckBox: Add to Path 반드시 체크요
visual studio code 설치
visual studio code에서 python extension 설치
playground
Complete 모드 : 답을 써줌
Chat 모드 : System user assistant 로 구분됨
Temperature 온도 : 0(항상 같은 값)~2(창의적인 답변)
visual studio code 에서
i. .env 생성하고
OPENAI_API_KEY=~~~저장
ii. 터미널 열고 pip install python-dotenv 실행
iii. Main.py 생성하고
from dotenv import load_dotenv
load_dotenv()
iv. https://python.langchain.com/docs/get_started/quickstart 참고, 터미널에서 다음을 실행
pip install langchain
pip install openai
v. main.py 에 다음 코드 copy
from doting import load_dotenv
load_dotenv()
from langchain.llms import OpenAI
llm = OpenAI()
llm.predict("hi!")
#from langchain.chat_models import ChatOpenAI
#chat_model = ChatOpenAI()
#chat_model.predict("hi!")
⇒ Error occurred
from dotenv import load_dotenv ModuleNotFoundError: No module named 'dotenv'
⇒ Changed but occurred again
from langchain.llms import OpenAI
llm = OpenAI(open_api_key=”sk~~~~~”)
이번 스터디 목표는 랭체인 기능 파악 후 개발에 도움된 활용 방법에 중점 예정입니다.