<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:media="http://search.yahoo.com/mrss/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>RAG &#8211; 투데이즈.kr</title>
	<atom:link href="https://2days.kr/tag/rag/feed/" rel="self" type="application/rss+xml" />
	<link>https://2days.kr</link>
	<description>투데이즈</description>
	<lastBuildDate>Sun, 25 Feb 2024 09:52:04 +0000</lastBuildDate>
	<language>ko-KR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8</generator>

<image>
	<url>https://2days.kr/wp-content/uploads/2025/10/cropped-simbol-1-32x32.png</url>
	<title>RAG &#8211; 투데이즈.kr</title>
	<link>https://2days.kr</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>나만의 Chatgpt RAG 시스템 만들기 with streamit</title>
		<link>https://2days.kr/25/02/18/8598/it/program/</link>
		
		<dc:creator><![CDATA[urjent]]></dc:creator>
		<pubDate>Sun, 25 Feb 2024 09:52:04 +0000</pubDate>
				<category><![CDATA[program]]></category>
		<category><![CDATA[chatgpt]]></category>
		<category><![CDATA[RAG]]></category>
		<guid isPermaLink="false">https://2days.kr/?p=8598</guid>

					<description><![CDATA[나만의 chatgpt RAG 시스템 은 streamlit-chat은 Streamlit을 이용하여 실시간 대화형 Web 애플리케이션을 쉽게 만들 수 있는 패키지입니다. 만드는 방법은 매우 간단합니다. 나만의 chatgpt 를 만들거나, 아니면 Pdf 등의 문서를 참고해서 답변을 할 수 있도록 만들 수도 있습니다. 예제파일 확인 링크 : https://ai-ynk.streamit.io streamlit-chat으로 Hugging Face에서 제공하는 Facebook AI BlenderBot과 OpenAI의 GPT-3 모델로 챗봇 프로그램을 만들어 보겠습니다. [&#8230;]]]></description>
										<content:encoded><![CDATA[<p data-ke-size="size16"><b>나만의 chatgpt RAG 시스템 은 streamlit-chat</b>은 Streamlit을 이용하여 실시간 대화형 Web 애플리케이션을 쉽게 만들 수 있는 패키지입니다. 만드는 방법은 매우 간단합니다. 나만의 chatgpt 를 만들거나, 아니면 Pdf 등의 문서를 참고해서 답변을 할 수 있도록 만들 수도 있습니다.</p>
<p data-ke-size="size16">예제파일 확인 링크 : <a title="https://ai-ynk.streamit.io" href="https://ai-ynk.streamit.io" target="_blank" rel="noopener">https://ai-ynk.streamit.io</a></p>
<figure data-ke-type="image" data-ke-style="alignCenter" data-ke-mobilestyle="widthOrigin"><img post-id="8598" fifu-featured="1" decoding="async" src="https://blog.kakaocdn.net/dn/b04QKa/btsFhTNCbsy/FL1ZWfa75Thfad7Tk9G0j1/img.gif" srcset="https://blog.kakaocdn.net/dn/cACrfC/btr65p6tNGQ/kPoXKMh4LAmUtsuhGXOHOk/img.gif" data-origin-height="1080" data-origin-width="1918" data-is-animation="true" alt="나만의 Chatgpt RAG 시스템 만들기 with streamit" title="나만의 Chatgpt RAG 시스템 만들기 with streamit" title="나만의 Chatgpt RAG 시스템 만들기 with streamit 3"></figure><div class='code-block code-block-2' style='margin: 8px auto; text-align: center; display: block; clear: both;'>
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8940400388075870"
     crossorigin="anonymous"></script>
<!-- 중간 -->
<ins class="adsbygoogle"
     style="display:block"
     data-ad-client="ca-pub-8940400388075870"
     data-ad-slot="8794586137"
     data-ad-format="auto"
     data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script></div>

<p style="background-color: #ffffff; color: #222222; text-align: start;" data-ke-size="size16">streamlit-chat으로 Hugging Face에서 제공하는 Facebook AI BlenderBot과 OpenAI의 GPT-3 모델로 챗봇 프로그램을 만들어 보겠습니다.</p>
<hr data-ke-style="style1" data-ke-type="horizontalRule" />
<h3 style="background-color: #ffffff; color: #222222; text-align: start;" data-ke-size="size23">1. 설치 (Installation)</h3>
<p style="background-color: #ffffff; color: #222222; text-align: start;" data-ke-size="size16">streamlit과 streamlit-chat 패키지 설치는 <span style="background-color: #666666; color: #ffffff;">pip</span> 명령어를 이용하여 설치할 수 있습니다.</p>
<pre class="hljs" style="background-color: #f4f4f4; color: #222222; text-align: start;" contenteditable="false" data-ke-type="codeblock" data-ke-language="bash"></pre>
<table class="hljs-ln" style="border-collapse: collapse; width: 100%;" border="1" data-ke-align="alignLeft">
<tbody>
<tr>
<td class="hljs-ln-line hljs-ln-numbers" style="text-align: right;" data-line-number="1">
<div class="hljs-ln-n" data-line-number="1"></div>
</td>
<td class="hljs-ln-line hljs-ln-code" data-line-number="1"><span class="hljs-attribute" style="color: #9cdcfe;">pip</span> install streamlit</td>
</tr>
<tr style="background-color: #000000;">
<td class="hljs-ln-line hljs-ln-numbers" style="text-align: right;" data-line-number="2">
<div class="hljs-ln-n" data-line-number="2"></div>
</td>
<td class="hljs-ln-line hljs-ln-code" data-line-number="2">pip install streamlit-chat</td>
</tr>
</tbody>
</table>
<pre id="code_1708853911470" class="hljs" style="background-color: #f4f4f4; color: #222222; text-align: start;" contenteditable="false" data-ke-type="codeblock" data-ke-language="bash"></pre>
<p style="background-color: #ffffff; color: #222222; text-align: start;" data-ke-size="size16">streamlit 설치와 관련된 내용은 이전 글을 참고하시기 바랍니다.</p>
<figure id="og_1708853911472" style="background-color: #f4f4f4; color: #222222; text-align: start;" data-og-image="https://scrap.kakaocdn.net/dn/eLVW9/hyR6O0fHkc/kO2Za2QlMqXJNNsZL8oRlk/img.png?width=800&amp;height=442&amp;face=0_0_800_442,https://scrap.kakaocdn.net/dn/pvFyP/hyR6GVqVhO/RdqAIVKChQQvKLO1BKvVVK/img.png?width=800&amp;height=442&amp;face=0_0_800_442" data-og-url="https://yunwoong.tistory.com/226" data-og-source-url="https://yunwoong.tistory.com/226" data-og-host="yunwoong.tistory.com" data-og-description="Streamlit은 Machine learning과 Data science project에서 사용자가 Web 애플리케이션을 쉽게 생성하고 공유할 수 있는 Python 오픈 소스 라이브러리입니다. Streamlit을 사용하면 최소한의 코드와 노력으로 interac" data-og-title="Streamlit 시작하기 (설치방법)" data-og-type="article" data-ke-align="alignCenter" data-ke-type="opengraph">
<div class="og-image" style="background-color: #000000; background-image: url('https://scrap.kakaocdn.net/dn/eLVW9/hyR6O0fHkc/kO2Za2QlMqXJNNsZL8oRlk/img.png?width=800&amp;height=442&amp;face=0_0_800_442,https://scrap.kakaocdn.net/dn/pvFyP/hyR6GVqVhO/RdqAIVKChQQvKLO1BKvVVK/img.png?width=800&amp;height=442&amp;face=0_0_800_442');"></div>
<div class="og-text">
<p class="og-title" style="color: #222222;" data-ke-size="size16">Streamlit 시작하기 (설치방법)</p>
<p class="og-desc" style="color: #222222;" data-ke-size="size16">Streamlit은 Machine learning과 Data science project에서 사용자가 Web 애플리케이션을 쉽게 생성하고 공유할 수 있는 Python 오픈 소스 라이브러리입니다. Streamlit을 사용하면 최소한의 코드와 노력으로 interac</p>
<p class="og-host" style="color: #222222;" data-ke-size="size16">yunwoong.tistory.com</p>
</div>
</figure>
<h3 style="background-color: #ffffff; color: #222222; text-align: start;" data-ke-size="size23">2. BlenderBot 챗봇</h3>
<p style="background-color: #ffffff; color: #222222; text-align: start;" data-ke-size="size16">BlenderBot은 Hugging Face의 Transformers 라이브러리를 이용하여 쉽게 사용할 수 있습니다. 먼저<span style="text-align: start;"> Hugging Face Inference API Key 발급을 진행합니다. 아래 글을 참고하세요.</span></p>
<figure id="og_1708853911473" style="background-color: #f4f4f4; color: #222222; text-align: start;" data-og-image="https://scrap.kakaocdn.net/dn/qLd8d/hyR6FCm6Eo/CKZv5Enu6xea6VfvPihAg0/img.png?width=800&amp;height=444&amp;face=0_0_800_444,https://scrap.kakaocdn.net/dn/bf6iMT/hyR6OlJ9t8/5w0v7MOtWkVzilg9uYohN1/img.png?width=800&amp;height=444&amp;face=0_0_800_444,https://scrap.kakaocdn.net/dn/R9BQI/hyR6GBgJdg/ZdRWUu2WtiiRECKFbPyQt0/img.png?width=955&amp;height=522&amp;face=0_0_955_522" data-og-url="https://yunwoong.tistory.com/225" data-og-source-url="https://yunwoong.tistory.com/225" data-og-host="yunwoong.tistory.com" data-og-description="Hugging Face는 자연어 처리를 위해 오픈 소스 도구와 라이브러리를 만들며 인기 있는 Transformers 라이브러리를 비롯한 다양한 제품을 개발하고 있습니다. Inference API는 Hugging Face가 제공하는 서비스" data-og-title="Hugging Face Inference API Key 발급" data-og-type="article" data-ke-align="alignCenter" data-ke-type="opengraph">
<div class="og-image" style="background-color: #000000; background-image: url('https://scrap.kakaocdn.net/dn/qLd8d/hyR6FCm6Eo/CKZv5Enu6xea6VfvPihAg0/img.png?width=800&amp;height=444&amp;face=0_0_800_444,https://scrap.kakaocdn.net/dn/bf6iMT/hyR6OlJ9t8/5w0v7MOtWkVzilg9uYohN1/img.png?width=800&amp;height=444&amp;face=0_0_800_444,https://scrap.kakaocdn.net/dn/R9BQI/hyR6GBgJdg/ZdRWUu2WtiiRECKFbPyQt0/img.png?width=955&amp;height=522&amp;face=0_0_955_522');"></div>
<div class="og-text">
<p class="og-title" style="color: #222222;" data-ke-size="size16">Hugging Face Inference API Key 발급</p>
<p class="og-desc" style="color: #222222;" data-ke-size="size16">Hugging Face는 자연어 처리를 위해 오픈 소스 도구와 라이브러리를 만들며 인기 있는 Transformers 라이브러리를 비롯한 다양한 제품을 개발하고 있습니다. Inference API는 Hugging Face가 제공하는 서비스</p>
<p class="og-host" style="color: #222222;" data-ke-size="size16">yunwoong.tistory.com</p>
</div>
</figure>
<p style="background-color: #ffffff; color: #222222; text-align: start;" data-ke-size="size16">Python 파일 blenderbot_app.py 을 생성하고 아래와 같이 작성합니다. API_TOKEN은 자신의 H<span style="text-align: start;">ugging Face Inference API Key</span><span style="text-align: start;"> 를 입력합니다.</span><span style="color: #333333; text-align: start;"> <span style="color: #666666;">(예: hf_xxxxxxxxxxxxxxxxxxxxx)</span></span></p>
<pre id="code_1708854144421" class="hljs vim" contenteditable="false" data-ke-type="codeblock" data-ke-language="bash">mport streamlit <span class="hljs-keyword">as</span> <span class="hljs-keyword">st</span>
from streamlit_chat import message
import requests
 
API_URL = <span class="hljs-string">"https://api-inference.huggingface.co/models/facebook/blenderbot-400M-distill"</span>
API_TOKEN = <span class="hljs-string">"YOUR API TOKEN HERE"</span>
headers = {<span class="hljs-string">"Authorization"</span>: <span class="hljs-keyword">f</span><span class="hljs-string">"Bearer {API_TOKEN}"</span>}
 
<span class="hljs-keyword">st</span>.header(<span class="hljs-string">"BlenderBot (Demo)"</span>)
<span class="hljs-keyword">st</span>.markdown(<span class="hljs-string">"[Be Original](https://miracool.co.kr/)"</span>)
 
<span class="hljs-keyword">if</span> <span class="hljs-string">'generated'</span> not in <span class="hljs-keyword">st</span>.session_state:
    <span class="hljs-keyword">st</span>.session_state[<span class="hljs-string">'generated'</span>] = []
 
<span class="hljs-keyword">if</span> <span class="hljs-string">'past'</span> not in <span class="hljs-keyword">st</span>.session_state:
    <span class="hljs-keyword">st</span>.session_state[<span class="hljs-string">'past'</span>] = []
 
def query(payload):
	response = requests.post(API_URL, headers=headers, json=payload)
	<span class="hljs-keyword">return</span> response.json()
 
 
with <span class="hljs-keyword">st</span>.form(<span class="hljs-string">'form'</span>, clear_on_submit=True):
    user_input = <span class="hljs-keyword">st</span>.text_input(<span class="hljs-string">'You: '</span>, <span class="hljs-string">''</span>, key=<span class="hljs-string">'input'</span>)
    submitted = <span class="hljs-keyword">st</span>.form_submit_button(<span class="hljs-string">'Send'</span>)
 
<span class="hljs-keyword">if</span> submitted <span class="hljs-built_in">and</span> user_inpu<span class="hljs-variable">t:</span>
    output = query({
        <span class="hljs-string">"inputs"</span>: {
            <span class="hljs-string">"past_user_inputs"</span>: <span class="hljs-keyword">st</span>.session_state.past,
            <span class="hljs-string">"generated_responses"</span>: <span class="hljs-keyword">st</span>.session_state.generated,
            <span class="hljs-string">"text"</span>: user_input,
        },
        <span class="hljs-string">"parameters"</span>: {<span class="hljs-string">"repetition_penalty"</span>: <span class="hljs-number">1.33</span>},
    })
 
    <span class="hljs-keyword">st</span>.session_state.past.<span class="hljs-keyword">append</span>(user_input)
    <span class="hljs-keyword">st</span>.session_state.generated.<span class="hljs-keyword">append</span>(output[<span class="hljs-string">"generated_text"</span>])
 
<span class="hljs-keyword">if</span> <span class="hljs-keyword">st</span>.session_state[<span class="hljs-string">'generated'</span>]:
    <span class="hljs-keyword">for</span> i in <span class="hljs-built_in">range</span>(<span class="hljs-built_in">len</span>(<span class="hljs-keyword">st</span>.session_state[<span class="hljs-string">'generated'</span>])-<span class="hljs-number">1</span>, -<span class="hljs-number">1</span>, -<span class="hljs-number">1</span>):
        message(<span class="hljs-keyword">st</span>.session_state[<span class="hljs-string">'past'</span>][i], is_user=True, key=str(i) + <span class="hljs-string">'_user'</span>)
        message(<span class="hljs-keyword">st</span>.session_state[<span class="hljs-string">"generated"</span>][i], key=str(i))</pre>
<pre id="code_1708853911498" class="hljs dockerfile" style="background-color: #f4f4f4; color: #222222; text-align: start;" contenteditable="false" data-ke-type="codeblock" data-ke-language="bash">streamlit <span class="hljs-keyword">run</span><span class="bash"> blenderbot_app.py</span></pre>
<h3 style="background-color: #ffffff; color: #222222; text-align: start;" data-ke-size="size23">3. GPT-3 챗봇</h3>
<p style="background-color: #ffffff; color: #222222; text-align: start;" data-ke-size="size16">다음으로 OpenAI API를 이용한 GPT-3 챗봇을 만들도록 하겠습니다.</p>
<p style="background-color: #ffffff; color: #222222; text-align: start;" data-ke-size="size16">먼저 OpenAI API를 사용하기 위해 API 키 발급이 필요합니다. 먼저 <a style="color: #748a96;" href="https://platform.openai.com/" target="_blank" rel="noopener">OpenAI API 사이트</a>로 이동합니다. OpenAI 계정이 필요하며 계정이 없다면 계정 생성이 필요합니다. 간단히 Google이나 Microsoft 계정을 연동 할 수 있습니다. 이미 계정이 있다면 로그인 후 진행하시면 됩니다.</p>
<figure id="og_1708853911499" style="background-color: #f4f4f4; color: #222222; text-align: start;" data-og-image="" data-og-url="https://platform.openai.com" data-og-source-url="https://platform.openai.com/" data-og-host="platform.openai.com" data-og-description="An API for accessing new AI models developed by OpenAI" data-og-title="OpenAI API" data-og-type="website" data-ke-align="alignCenter" data-ke-type="opengraph">
<div class="og-image" style="background-color: #000000; background-image: url('&quot;&quot;');"></div>
<div class="og-text">
<p class="og-title" style="color: #222222;" data-ke-size="size16">OpenAI API</p>
<p class="og-desc" style="color: #222222;" data-ke-size="size16">An API for accessing new AI models developed by OpenAI</p>
<p class="og-host" style="color: #222222;" data-ke-size="size16">platform.openai.com</p>
</div>
</figure>
<p style="background-color: #ffffff; color: #222222; text-align: start;" data-ke-size="size16">로그인이 되었다면 우측 상단 Personal -&gt; [ View API Keys ] 를 클릭합니다.</p>
<figure data-ke-type="image" data-ke-style="alignCenter" data-ke-mobilestyle="widthOrigin"><img decoding="async" src="https://blog.kakaocdn.net/dn/NLq3c/btsFf4o3tPI/aGhUiOgkDNCMUAONPbsQvK/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxKSqg%2Fbtr62GPoKvC%2FOF7uLj6YZhmv1VkVyDOJN0%2Fimg.png" data-origin-height="426" data-origin-width="942" data-is-animation="false" alt="img" title="나만의 Chatgpt RAG 시스템 만들기 with streamit 4"></figure>
<p style="background-color: #ffffff; color: #222222; text-align: start;" data-ke-size="size16">[ + Create new secret key ] 를 클릭하여 API Key를 생성합니다. API key generated 창이 활성화되면 Key 를 반드시 복사하여 두시기 바랍니다. 창을 닫으면 다시 확인할 수 없습니다. (만약 복사하지 못했다면 다시 Create new secret key 버튼을 눌러 생성하면 되니 걱정하지 않으셔도 됩니다.)</p>
<hr data-ke-style="style1" data-ke-type="horizontalRule" />
<p style="background-color: #ffffff; color: #222222; text-align: start;" data-ke-size="size16">매우 간단하게 Web 애플리케이션을 만들어 시뮬레이션이 가능합니다. 만일 개발자가 아닌 데이터 과학자나 AI 모델러인 경우 시뮬레이터를 구축하려면 시간과 노력이 많이 들 수 있지만 Streamlit을 이용한다면 이 과정을 단순화하고 시간을 절약할 수 있을 것 같습니다.</p>
<!-- CONTENT END 2 -->
]]></content:encoded>
					
		
		
		<media:content url="https://blog.kakaocdn.net/dn/b04QKa/btsFhTNCbsy/FL1ZWfa75Thfad7Tk9G0j1/img.gif" medium="image"></media:content>
            	</item>
	</channel>
</rss>
