묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨RAG를 활용한 LLM Application 개발 (feat. LangChain)
3.2.1 LangChain과 Chroma를 활용한 RAG 구성_결과 관련
3.2.1 LangChain과 Chroma를 활용한 RAG 구성 + Upstage Embeddings.ipynb 파일을 .py로 변환하여 실행시켰는데, 결과가 제대로 나오지 않습니다.한번인가 정확하게 나왔던것 같습니다.무슨 문제 인지 궁금합니다.--------------------------------%runfile /home/sjhappy/downloads/source_code/LLM/inflearn-lim-application/3_2_2.py --wdir/home/sjhappy/anaconda3/envs/LLM_EN/lib/python3.9/site-packages/langsmith/client.py:253: LangSmithMissingAPIKeyWarning: API key must be provided when using hosted LangSmith API warnings.warn({'query': '연봉 3천만원인 직장인의 소득세는 얼마인가요?', 'result': '질문에서 제공된 정보로는 정확한 소득세를 계산할 수 없습니다. 소득세는 근로소득 외에 다른 소득, 세액공제 및 감면액 등에 따라 달라질 수 있습니다. 따라서, 더 자세한 정보를 제공해주시면 소득세를 계산해드릴 수 있습니다.'}------------------# coding: utf-8# # 1. 패키지 설치# In[1]:# # 2. Knowledge Base 구성을 위한 데이터 생성## - [RecursiveCharacterTextSplitter](https://python.langchain.com/v0.2/docs/how_to/recursive_text_splitter/)를 활용한 데이터 chunking# - split 된 데이터 chunk를 Large Language Model(LLM)에게 전달하면 토큰 절약 가능# - 비용 감소와 답변 생성시간 감소의 효과# - LangChain에서 다양한 [TextSplitter](https://python.langchain.com/v0.2/docs/how_to/#text-splitters)들을 제공# - chunk_size 는 split 된 chunk의 최대 크기# - chunk_overlap은 앞 뒤로 나뉘어진 chunk들이 얼마나 겹쳐도 되는지 지정# In[1]:from langchain_community.document_loaders import Docx2txtLoaderfrom langchain_text_splitters import RecursiveCharacterTextSplittertext_splitter = RecursiveCharacterTextSplitter(chunk_size=1500,chunk_overlap=200,)loader = Docx2txtLoader('./tax.docx')document_list = loader.load_and_split(text_splitter=text_splitter)# In[2]:from dotenv import load_dotenvfrom langchain_upstage import UpstageEmbeddings# 환경변수를 불러옴load_dotenv()# OpenAI에서 제공하는 Embedding Model을 활용해서 chunk를 vector화embedding = UpstageEmbeddings(model="solar-embedding-1-large") # In[7]: from langchain_chroma import Chroma # 데이터를 처음 저장할 때database = Chroma.from_documents(documents=document_list, embedding=embedding, collection_name='chroma-tax', persist_directory="./chroma") # 이미 저장된 데이터를 사용할 때# database = Chroma(collection_name='chroma-tax', persist_directory="./chroma", embedding_function=embedding) # # 3. 답변 생성을 위한 Retrieval## - Chroma에 저장한 데이터를 유사도 검색(similarity_search())를 활용해서 가져옴 # In[8]: query = '연봉 3천만원인 직장인의 소득세는 얼마인가요?' # k 값을 조절해서 얼마나 많은 데이터를 불러올지 결정retrieved_docs = database.similarity_search(query, k=4) # In[9]: retrieved_docs # # 4. Augmentation을 위한 Prompt 활용## - Retrieval된 데이터는 LangChain에서 제공하는 프롬프트("rlm/rag-prompt") 사용 # In[10]: from langchain_upstage import ChatUpstage llm = ChatUpstage() # In[11]: from langchain import hub prompt = hub.pull("rlm/rag-prompt") # # 5. 답변 생성## - [RetrievalQA](https://docs.smith.langchain.com/old/cookbook/hub-examples/retrieval-qa-chain)를 통해 LLM에 전달# - RetrievalQA는 [create_retrieval_chain](https://python.langchain.com/v0.2/docs/how_to/qa_sources/#using-create_retrieval_chain)으로 대체됨# - 실제 ChatBot 구현 시 create_retrieval_chain으로 변경하는 과정을 볼 수 있음 # In[12]: from langchain.chains import RetrievalQA qa_chain = RetrievalQA.from_chain_type(llm,retriever=database.as_retriever(),chain_type_kwargs={"prompt": prompt}) # In[13]: ai_message = qa_chain({"query": query}) # In[14]: # 강의에서는 위처럼 진행하지만 업데이트된 LangChain 문법은 .invoke() 활용을 권장ai_message = qa_chain.invoke({"query": query}) # In[15]: print(ai_message) # In[ ]:
-
미해결AI 에이전트로 구현하는 RAG 시스템(w. LangGraph)
향후 로컬LLM을 사용하는 강의가 나올 수 있을까요?
커머셜이나 금융 얘기해주셨는데전자는 권리 문제 후자는 보안문제때문에강의에 사용된 openAI 모델은 사용하기 힘듭니다.양쪽 문제를 해결할 수 있는게 로컬AI라고 생각하는데요. 현재는 LLAMA3이 나와있고, LLAMA4가 상반기에 출시된다고 들었는데 해당 70b~8b 모델 정도로 실무에 적용가능한 현실적인 강의도 있을 수 있는지 궁금합니다.
-
해결됨LangGraph를 활용한 AI Agent 개발 (feat. MCP)
pdf 를 md를 바꾸는 과정 질문있습니다.
안녕하세요~ 2.2강 초반부 전처리 관련해서 질문이 있습니다. 제가 window os라 그런가 어디서 잘못했는지는 모르겠지만.. 주피터에서 nest_asyncio.apply()를 해도 안되더라구요. 그래서 하루종일 쳇지피티 지지고 볶으면서 그냥 주피터 포기하고 .py로 돌리자 했는데 계속 poppler path가 없다는 에러가 뜨더니 실행이 안됐어요. 그래서 poppler 깔고, 해당 파일이 있는 주소를 아래와 같이 위치지정 해주니까 작동은 되더군요. 제가 했던 코드는 아래와 같습니다.poppler_bin_path = r"C:\Users\Desktop\langgraph-agent\poppler-24.08.0\Library\bin" os.environ["PATH"] += os.pathsep + poppler_bin_path load_dotenv() kwargs = {} model = "gpt-4o-mini" custom_system_prompt = None async def main(): file_path = "./documents/income_tax.pdf" select_pages = 53 output_dir = "./documents" result = await zerox(file_path=file_path, model=model, output_dir=output_dir, custom_system_prompt=custom_system_prompt, select_pages=select_pages, **kwargs) return result result = asyncio.run(main()) print(result) 젤 위에 두 줄 말곤 똑같이 했고 .md 파일 생기는것도 확인했어요. select_pages는 표가 있는 하나만 골라서 했습니다. 서론이 길었지만 여기까지가 제 상황이구요! 아래가 찐질문입니다 ㅎ...md 파일을 열어보니 문제가 세가지 정도 보였는데첫번째는 인코딩 문제입니다. 저만 그런건지 utf-8로하면 깨져서 나오고 euc-kr로하면 원하는 한국어 파일이 나오더라구요. 저만 이런건가요 강사님도 변환 과정을 거치신 건가요?두번째는 오타입니다. 님시제< 라는 단어가 반복되길래 뭐지 했는데 나중에 3번 오류를 찾아보면서 같이 찾아보니까 납세지 더라구요. '면세사업등 수입금액)보다 미달하게'를 '면세사업동안이지 더욱 미달하여'라고 표현한것도 보이고요.. 저 위에 있는 코드가 문제인가요 아님 이런 자잘한 오타들은 pdf를 변환하는 과정에서 어쩔 수 없는 것인가요? 강사님이 올려주신 md파일이랑도 번갈아가며 보는데 저기도 짜잘하게 보이긴 하거든요.. 이정도 오타는 넘어가도 괜찮은 건가요??마지막으로 제 마크다운 파일에는 표가 보이지 않습니다. 강의 내용 중에도 zerox로 만들어진 .md 파일을 훑어보는데 거기도 표가 나오고, 애초에 zerox를 사용하는 이유가 표를 꺼내기 위해선데 표가 보이지 않아요. 강의 자료 .md를 보면 수식으로 나와있는데(표는 아니더라도) 저는 수식이 있어야 될 곳은 공란으로 나오고 바로 다음 내용으로 넘어갑니다. 아래와 같이요. 복붙하면서 보니까 여기에도 어색한 표현이 있네요ㄷㄷ.. 특히 아래껀 1만분의 2를 곱한 금액인데.. 1만분의 1금이면 타격이 좀 있지 않나요??<제가 변환한 거 - 틀린 부분이 1 이하 <-> 1보다 큰 경우라서 아예 반대로.. 서술하고 있네요 ㄷㄷ> 1. 다음 계산세에 따라 계산한 약수(사업소득금액)의 종합소득금액에 차치하는 비율 1분 이하인 경우에는 1로, 0보다 큰 경우에는 0으로 한다. ② 해당 과세기간의 사업소득의 총수입금액에 1만분의 1금을 곱한 금액 <강사님의 강의자료> 1. 다음 계산식에 따라 계산한 금액(사업소득금액이 종합소득금액에서 차지하는 비율이 1보다 큰 경우에는 1, 0보다 작은 경우에는 0으로 한다) 가산세 = A × (B/C) × 100 - C × 5 A: 종합소득분이출세액 B: 사업소득금액 C: 종합소득금액 2. 해당 과세기간 사업소득의 총수입금액에 1만분의 2를 곱한 금액 적다보니 글이 길어졌네요 볼드체로 칠한게 글의 요지랍니다. 긴 글 읽어주셔서 감사합니다!
-
미해결AI 에이전트로 구현하는 RAG 시스템(w. LangGraph)
실습 환경을 google colab + 파이토치로도 가능한가요?
RAG 강의랑 수강해놓고 아직 듣지못하고 있는데실습 환경을 RAG 강의와 더불어colab + 파이토치로 해도 동일하게 실습할수 있나요?
-
해결됨LangGraph를 활용한 AI Agent 개발 (feat. MCP)
수강에 대한 질문이 있습니다.
안녕하세요, RAG를 활용한 LLM Application 개발 강의를 수강했던 수강생 입니다. 수강 이후 약 두달정도 langchain을 놓은 상태라 거의.. 리셋된 상태입니다. 마지막으로 짰던 코드는 이해는 가는데 강의 내용이 세세하겐 떠오르지 않네요. 이와 같은 상황에서 그냥 바로 수강을 해도 될까요 아니면 RAG LLM 강의를 다시 한번 돌리고 시작하는 게 나을까요?? 답변 감사합니다!
-
미해결모두를 위한 대규모 언어 모델 LLM(Large Language Model) Part 1 - Llama 2 Fine-Tuning 해보기
소량의 fineTuning 이 미치는 영향
주어진 메세지를 학습할 때 20 개의 데이터를 학습시키는데 이미 엄청난 양의 데이터가 학습이 되어 있는데 이런 자아(system)이 반영될 수 있는건가요?
-
미해결모두를 위한 대규모 언어 모델 LLM(Large Language Model) Part 1 - Llama 2 Fine-Tuning 해보기
파인튜닝모델에게 일반적인 질문 할 경우에 대한 궁금증
Llama2 Fine-Tuning 예제를 보며 meta-llama/Llama-3.1-8BLlama-3.1을 파인튜닝을 하였습니다.파인튜닝한 모델과 Llama-3.1을 병합하여 파인튜닝된 데이터를 물어보니 어느 정도 대답을 잘 하였습니다.하지만 파인튜닝된 이외의 질문을 해봤더니 계속해서 파인튜닝된 데이터만 출력해 주고 있습니다. 예를 들어지구에 대해서 설명해줘라고 했지만 지구와 전혀 상관없는 파인튜닝된 데이터를 출력합니다. 기존 모델의 문제인가 확인하기 위해 파인튜닝과 병합안한 기본 Llama-3.1모델에게 질문하면 지구에 대한 설명을 아주 잘해주고 있습니다. 기본 모델과 파인튜닝한 모델을 병합하면 파인튜닝한 모델 데이터에서만 결과 값을 도출하는지 궁금합니다.
-
해결됨RAG를 활용한 LLM Application 개발 (feat. LangChain)
3.3 Langchain 없이 Upstage RAG 구성
안녕하세요 강사님. 🙂 질문 내용3.3 강의를 듣던 중 chatGPT 말고 upstage로 구성하는 방법은 없을까? 하고 스스로 방법을 찾아봤습니다. https://github.com/openai/tiktoken/blob/main/tiktoken/model.py 현재 tiktoken에서 제공되는 model 중 upstage의 solar 모델이 없는 것 같습니다. upstage 로 RAG를 구성하는 방법도 배울 수 있을까요..?
-
해결됨RAG를 활용한 LLM Application 개발 (feat. LangChain)
chroma vector db 생성에서 오류
안녕하세요. 지금 Chroma.from_documents(documents=document_list, embedding=embedding) 이 부분에서 에러가 나서 질문 드립니다. 개발 환경은 vscode에서 jupyter notebook 가상환경 만들어서 사용 중입니다. 사내에서 공부 중이라 drm으로 인해 txt 파일로 변경을 했고, ollama를 사용해서 embedding model을 생성했습니다. mxbai-embed-large 이 모델을 사용했고요. 일단 소요 시간이 너무 오래 걸립니다. 그리고 1시간이 넘어가고는 canceled future for execute_request message before replies were done 이 에러가 뜨더라고요. 그래서 python으로 작성을 했더니 2시간 정도 걸리니까 생성은 되더라고요. 이건 좀 아닌 거 같아서 질문 드립니다. 혹시 왜 이런지 아실까요?
-
해결됨RAG를 활용한 LLM Application 개발 (feat. LangChain)
작성해주신 코드를 볼 수 있는 곳이 있을까요?
작성해주신 코드를 볼 수 있는 곳이 있을까요? 대화 기록을 남기는 법, 채이닝을 이용하는 법을 코드를 보면서 따라가고 싶습니다
-
미해결모두를 위한 대규모 언어 모델 LLM(Large Language Model) Part 1 - Llama 2 Fine-Tuning 해보기
모델에 대한 성능평가 방법
다른 모델들에 대한 성능을 어떤 방법으로 비교 하였나요?
-
미해결모두를 위한 대규모 언어 모델 LLM Part 5 - LangGraph로 나만의 AI 에이전트 만들기
"Airline Red Teaming Korean" 데이터 클론시 에러가 발생합니다.
강사님 강의 잘 듣고 있습니다. 강사님 강의 4개째 입니다.Airline Red Teaming Korean 를 랭스미스에서 클론할 때 권한 오류(401)가 발생합니다. 물론 재 API 설정도 다 했고, 랭스미스도 설정한 상태에서 에러가 발생합니다.답변 부탁드립니다.
-
해결됨LangGraph를 활용한 AI Agent 개발 (feat. MCP)
무한 rewrite 발생시 대처 방법
2.3 강의에서 generate 이후 스코어를 통해 rewrite를할지 end를 할지 판단할때, 쿼리 자체에서 document와 관련이 없는 질문을 했을때 무한으로 rewrite에 빠질 경우 어떻게 대처하면 될까요?
-
미해결입문자를 위한 LangChain 기초
코드 결과값이 좀 다릅니다.
멀티체인 부분에서 chain1의 답변이.. 길게 나옵니다.한 단어로 'future'라는 답변이 나와야 사실 chain2에 english_word라는 변수에 알맞는 값이 들어가는 걸텐데요. 문장으로 답이 나와서 이상한 상황입니다.무슨 문제가 있어서 이렇게 invoke 결과값이 달라지는지 제가 뭘잘못했는지 모르겠습니다.제 잘못이 아니라면 이게 무엇 때문인지, 어떻게 해결할 수 있을지 궁금합니다. (chain2도 답변을 영어로 하는 문제도 있습니다.)
-
해결됨RAG를 활용한 LLM Application 개발 (feat. LangChain)
upstage api 연결
안녕하세요 강사님 🙂 저는, 이번 강의를 통해 ipynb로 처음 실습을 해봅니다.실습 중 처음부터 막히는 부분이 발생해서 질문을 남깁니다. 실습환경Mac OSPython 3.13pyenv virtualenv 작성한 코드%pip install langchain-upstage python-dotenv발생한 오류Collecting langchain-upstage Using cached langchain_upstage-0.6.0-py3-none-any.whl.metadata (3.3 kB) Requirement already satisfied: python-dotenv in /Users/dot/.pyenv/versions/3.10/envs/inflearn-llm-application/lib/python3.13/site-packages (1.0.1) Requirement already satisfied: langchain-core<0.4.0,>=0.3.29 in /Users/dot/.pyenv/versions/3.10/envs/inflearn-llm-application/lib/python3.13/site-packages (from langchain-upstage) (0.3.34) Requirement already satisfied: langchain-openai<0.4,>=0.3 in /Users/dot/.pyenv/versions/3.10/envs/inflearn-llm-application/lib/python3.13/site-packages (from langchain-upstage) (0.3.4) Collecting pypdf<5.0.0,>=4.2.0 (from langchain-upstage) Using cached pypdf-4.3.1-py3-none-any.whl.metadata (7.4 kB) Requirement already satisfied: requests<3.0.0,>=2.31.0 in /Users/dot/.pyenv/versions/3.10/envs/inflearn-llm-application/lib/python3.13/site-packages (from langchain-upstage) (2.32.3) Collecting tokenizers<0.20.0,>=0.19.1 (from langchain-upstage) Using cached tokenizers-0.19.1.tar.gz (321 kB) Installing build dependencies ... Getting requirements to build wheel ... Preparing metadata (pyproject.toml) ... error: subprocess-exited-with-error × Preparing metadata (pyproject.toml) did not run successfully. │ exit code: 1 ╰─> [6 lines of output] Checking for Rust toolchain.... Cargo, the Rust package manager, is not installed or is not on PATH. This package requires Rust and Cargo to compile extensions. Install it through the system's package manager or via https://rustup.rs/ [end of output] ... note: This is an issue with the package mentioned above, not pip. hint: See above for details. Note: you may need to restart the kernel to use updated packages. Output is truncated. View as a scrollable element or open in a text editor. Adjust cell output settings...문제 해결제가 영어를 못해서 claude한테 질문해보니까, Rust와 Cargo가 설치되어 있지 않다고 하더군요.curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh source "$HOME/.cargo/env"해당 명령어로 rust를 설치 한 뒤, 수행하면 될거라고 하는데... 너무 번거로워서 다른 방법으로 빌드된 버전을 미리 설치하도록 수행했습니다.%pip install --only-binary :all: langchain-upstage python-dotenv궁금한 점langchain-openai를 설치할 때는 문제가 없던데, 왜 langchain-upstage는 이런 문제가 발생하나요..?
-
미해결Prompt Engineering: 완벽 가이드
[Advanced Prompt Technique: Thought Generation - Theory] 18:26 ~ 21:29 간 음성이 누락되어 있습니다.
[Advanced Prompt Technique: Thought Generation - Theory] 18:26 ~ 21:29 간 음성이 누락되어 있습니다.
-
해결됨RAG를 활용한 LLM Application 개발 (feat. LangChain)
챗봇 성능 테스트를 하기에 좋은 플랫폼이 있을까요?
현재 개인정보 배우미 챗봇을 다 만들고 테스트 중에 있습니다.문서는 총 78개를 넣었고, 문서에서 관련 내용을 잘 찾아서 응답하고 있는데, 실제 문서와 응답을 대조해서 1차로 사람이 확인하는 방법 이외에 langsmith와 같이 성능을 측정하기 위한 플랫폼이 있는지 궁금 합니다. langsmith의 경우 챗봇 속도를 확인하고 각 항목당 어떻게 처리하는지 확인이 가능하나, 질문에 대한 정확도나 유사도를 보기 쉽게 확인하기는 조금 부족한것 같더라구요.. huggingface의 evaluate를 써봤으나, 단어, 구문 구조가 다르면 0점으로 평가될 가능성이 높아 적합하지 않아보입니다.. 혹 추천해주실 만한 플랫폼이 있으실까요?
-
해결됨RAG를 활용한 LLM Application 개발 (feat. LangChain)
hub.pull시에 API KEY가 필요하다고 경고가 나옵니다.
다른 분도 마찬가지로 질문 남겨주셨는데 hub,pull 시에 에러가 발생합니다.정책이 바뀐 것 같다는 답변을 보고, langSmith 에서 카드를 등록하고 'Developer' Plan 을 선택도 했고, API KEY 도 발급 후.env 파일에 아래와 같이 설정해도 에러가 발생합니다.LANGCHAIN_TRACING_V2=true LANGCHAIN_API_KEY=<API_KEY> Failed to get info from https://api.smith.langchain.com: LangSmithConnectionError('Connection error caused failure to GET /info in LangSmith API. Please confirm your internet connection. SSLError(MaxRetryError("HTTPSConnectionPool(host=\'api.smith.langchain.com\', port=443): Max retries exceeded with url: /info (Caused by SSLError(SSLCertVerificationError(1, \'[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1007)\')))"))\nContent-Length: None\nAPI Key: lsv2_********************************************06') window 환경이고 local 환경에서 구동 중이라 별도 방화벽은 설정이 되어있지 않았는데 해결 방안 공유 부탁드립니다.
-
해결됨RAG를 활용한 LLM Application 개발 (feat. LangChain)
회사보안 문제로 허깅페이스 hub.pull 이 불가능한데
혹시 다른 방법으로 prompt를 생성할 방법이 있을까요?
-
미해결프로젝트로 배우는 Python 챗봇 & RAG - LangChain, Gradio 활용
커널선택시 poetry env가 보이지 않습니다.
위와 같이 poetry env 가 보이지 않는데 어떻게 해결해야 할까요??