๋ณธ๋ฌธ

[์‹ค์Šต] langchain, gpt๋ฅผ ํ™œ์šฉํ•˜์—ฌ ํŒ์‚ฌGPT ๋งŒ๋“ค๊ธฐ

๋ฐ˜์‘ํ˜•

โœ…  ์‹ค์Šต ์ค€๋น„๋ฌผ: apikey

https://server-engineer.tistory.com/983

 

[์‹ค์Šต] OpenAI apikey ๋ฐœ๊ธ‰ ๋ฐ ์‚ฌ์šฉํ•˜๊ธฐ

1. ํšŒ์›๊ฐ€์ž…ํ•˜๊ธฐ ๋จผ์ € OpenAI ํ”Œ๋žซํผ์— ์ ‘์†ํ•ฉ๋‹ˆ๋‹ค. (๋ฐ”๋กœ๊ฐ€๊ธฐ) ํ™ˆํŽ˜์ด์ง€์—์„œ ํšŒ์›๊ฐ€์ž… ์ ˆ์ฐจ๋ฅผ ์™„๋ฃŒํ•ด์ฃผ์„ธ์š”. 2. API ํ‚ค ๋ฐœ๊ธ‰ ๋ฐ›๊ธฐ ๋กœ๊ทธ์ธ ํ›„, ์˜ค๋ฅธ์ชฝ ์ƒ๋‹จ์— ์žˆ๋Š” 'View API Keys'๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. ์ง์ ‘ ๋ง

server-engineer.tistory.com


 

โœ…  ์‹ค์Šต ์ž๋ฃŒ

https://colab.research.google.com/github/i-am-shuan/learn-langchain/blob/main/langchain_judgegpt.ipynb#scrollTo=MPPxMDuDuXJb

 

langchain_judgegpt.ipynb

Run, share, and edit Python notebooks

colab.research.google.com

 

 

โœ…  ์„œ๋น„์Šค ์„ค๋ช…

์‚ฌ์šฉ์ž๊ฐ€ ์งˆ๋ฌธ์„ ํ•˜๊ณ  ๋‹ต๋ณ€์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. ์ด ์„œ๋น„์Šค๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ˆซ์ž๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์ €์žฅํ•˜๊ณ , ์‚ฌ์šฉ์ž์˜ ์งˆ๋ฌธ์„ ์ˆซ์ž๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ์—์„œ ์œ ์‚ฌํ•œ ๋‹ต๋ณ€์„ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ, ์ด ์„œ๋น„์Šค๋Š” ๊ฒ€์ƒ‰๋œ ๋‹ต๋ณ€์„ ์‚ฌ์šฉํ•˜์—ฌ OpenAI์˜ GPT-3 ์–ธ์–ด ๋ชจ๋ธ์— ์งˆ๋ฌธ์„ ์ƒ์„ฑํ•˜๊ณ , GPT-3 ์–ธ์–ด ๋ชจ๋ธ์ด ์ƒ์„ฑํ•œ ๋‹ต๋ณ€์„ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

์ด ์„œ๋น„์Šค๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๊ณ ๊ฐ ์„œ๋น„์Šค: ๊ณ ๊ฐ์ด ์งˆ๋ฌธ์„ ํ•˜๋ฉด LangChain JudgeGPT๊ฐ€ ๊ณ ๊ฐ์˜ ์งˆ๋ฌธ๊ณผ ์œ ์‚ฌํ•œ ๋‹ต๋ณ€์„ ๊ฒ€์ƒ‰ํ•˜์—ฌ ๊ณ ๊ฐ์—๊ฒŒ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ๋งˆ์ผ€ํŒ…: ๋งˆ์ผ€ํŒ… ๋‹ด๋‹น์ž๊ฐ€ ๋งˆ์ผ€ํŒ… ์บ ํŽ˜์ธ์„ ๊ธฐํšํ•  ๋•Œ LangChain JudgeGPT๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์บ ํŽ˜์ธ์˜ ํšจ๊ณผ๋ฅผ ์˜ˆ์ธกํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ต์œก: ํ•™์ƒ๋“ค์ด ๊ณต๋ถ€ํ•  ๋•Œ LangChain JudgeGPT๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ณต๋ถ€ ์ž๋ฃŒ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ณ , ์งˆ๋ฌธ์„ ํ•˜๊ณ , ๋‹ต๋ณ€์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์‚ฌ์šฉ์ž๊ฐ€ ์งˆ๋ฌธ์„ ํ•˜์—ฌ ์‘๋‹ต์„ ๋ฐ›๊ธฐ๊นŒ์ง€์˜ ๊ณผ์ •

  1. ํŒ๋ก€ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆซ์ž๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
  2. ์‚ฌ์šฉ์ž๊ฐ€ ์งˆ๋ฌธ์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
  3. LangChain์€ ์‚ฌ์šฉ์ž์˜ ์งˆ๋ฌธ์„ ์ˆซ์ž๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  4. ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ์—์„œ ์‚ฌ์šฉ์ž์˜ ์งˆ๋ฌธ๊ณผ ์œ ์‚ฌํ•œ ๋‹ต๋ณ€์„ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.
  5. LangChain์€ ๊ฒ€์ƒ‰๋œ ๋‹ต๋ณ€์„ ์‚ฌ์šฉํ•˜์—ฌ OpenAI์˜ GPT-3 ์–ธ์–ด ๋ชจ๋ธ์— ์งˆ๋ฌธ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  6. GPT-3 ์–ธ์–ด ๋ชจ๋ธ์ด ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต๋ณ€์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  7. LangChain์€ GPT-3 ์–ธ์–ด ๋ชจ๋ธ์ด ์ƒ์„ฑํ•œ ๋‹ต๋ณ€์„ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

 

์‚ฌ์šฉํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

  • openai:
    • OpenAI์˜ ์–ธ์–ด ๋ชจ๋ธ์ธ GPT-3์™€ ์ƒํ˜ธ ์ž‘์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ํŒŒ์ด์ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค.
  • tqdm:
    • ๋ฐ˜๋ณต ์ž‘์—…์˜ ์ง„ํ–‰ ์ƒํ™ฉ์„ ํ‘œ์‹œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ํŒŒ์ด์ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค.
    • ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐฑํ„ฐํ™”ํ•˜๊ณ  ๋ฒกํ„ฐ์Šคํ† ์–ด์— ์ €์žฅํ•˜๋Š” ๊ณผ์ •์˜ ์ง„ํ–‰ ์ƒํ™ฉ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
  • numpy:
    • ๊ณผํ•™ ๊ณ„์‚ฐ์„ ์œ„ํ•œ ํŒŒ์ด์ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐฑํ„ฐํ™”ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • pickle:
    • ํŒŒ์ด์ฌ ๊ฐ์ฒด๋ฅผ ํŒŒ์ผ๋กœ ์ €์žฅํ•˜๊ณ  ๋ถˆ๋Ÿฌ์˜ค๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ํŒŒ์ด์ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค.
    • ๋ฐฑํ„ฐํ™”๋œ ๋ฐ์ดํ„ฐ๋ฅผ ํŒŒ์ผ๋กœ ์ €์žฅํ•˜๊ณ  ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค.
  • sentence_transformers:
    • ๋ฌธ์žฅ์„ ๋ฒกํ„ฐ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ํŒŒ์ด์ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค.
    • ๋ฌธ์žฅ์„ ๋ฒกํ„ฐ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  • langchain:
    • ๋‹ค์–‘ํ•œ ์–ธ์–ด ๋ชจ๋ธ๊ณผ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ…์ŠคํŠธ์™€ ์ƒํ˜ธ ์ž‘์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ํŒŒ์ด์ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค.
    •  ์‚ฌ์šฉ์ž์˜ ์งˆ๋ฌธ์„ ๋ฒกํ„ฐํ™”ํ•˜๊ณ , ๋ฒกํ„ฐ์Šคํ† ์–ด์—์„œ ์œ ์‚ฌํ•œ ๋‹ต๋ณ€์„ ๊ฒ€์ƒ‰ํ•˜๊ณ , ๊ฒ€์ƒ‰๋œ ๋‹ต๋ณ€์„ ์‚ฌ์šฉํ•˜์—ฌ GPT-3 ์–ธ์–ด ๋ชจ๋ธ์— ์งˆ๋ฌธ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • vectorstore:
    • ๋ฒกํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ๊ฒ€์ƒ‰ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ํŒŒ์ด์ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค.
    • ๋ฐฑํ„ฐํ™”๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.

 

๋ฐ˜์‘ํ˜•

๊ณต์œ 

๋Œ“๊ธ€