묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결RAG 마스터: 기초부터 고급기법까지 (feat. LangChain)
vectorstore의 as_retriever와 similarity_search는 같은 로직인가요?, 사용되는 검색 알고리즘은 뭔가요?
안녕하세요. 강의 잘 듣고 있습니다. 제목이 곧 질문인데요.Chroma로 생성한 vectorstore객체의 as_retriever매서드와 similarity_search는 내부적으로 같은 알고리즘 혹은 로직을 사용하나요? 그렇다면 이 두가지 매서드의 차이점은 langchain을 사용할 때 편의성 차원에서 as_retriever가 더 좋다 이렇게 알고있으면 되는걸까요? 또한 내부에서 사용되는 검색 알고리즘은 어떤건지 알 수 있을까요? 감사합니다.
-
미해결맞춤형 LLM 만들기 : 처음 시작하는 분을 위한 RAG 기초 개념부터 멀티모달·Agent 실습까지
test.pdf
첨부파일이 어딧죠 실습데이터 셋 안 열리는데
-
미해결LangGraph를 활용한 AI Agent 개발 (feat. MCP)
2.3강 18분 initial_state에서 오류가 납니다
안녕하세요 langchain강의를 듣고 도움이 되어 langgraph 강의도 열심히 수강하고 있습니다! 2.2강의에서 알려주신 langsmith의 hub가 공식문서에는 client로 변경이 되어 그에 맞게 수정을 했습니다.from langsmith import Client from langchain_openai import ChatOpenAI LANGSMITH_API_KEY = os.getenv("LANGSMITH_API_KEY") client = Client(api_key=LANGSMITH_API_KEY) prompt = client.pull_prompt("rlm/rag-prompt", include_model=True) llm = ChatOpenAI(model = 'gpt-4o')같은 방법으로 2.3 강에서도 # Create a LANGSMITH_API_KEY in Settings > API Keys from langsmith import Client from typing import Literal from langchain_core.output_parsers import JsonOutputParser client = Client(api_key=LANGSMITH_API_KEY) doc_relevance_prompt = client.pull_prompt("langchain-ai/rag-document-relevance", include_model=True) def check_doc_relevance(state: AgentState) -> Literal['generate', 'rewrite']: query = state['query'] context = state['context'] print(f'context == {context}') doc_relevance_chain = doc_relevance_prompt | llm #prompt를 활용해서 llm을 호출한다. response = doc_relevance_prompt.invoke({'question': query, 'documents': context}) print(f'doc relevance response: {response}') if response['Score'] == 1: return 'generate' return 'rewrite'이런 식으로 진행하고 있습니다.그래서 그런지 graph.invoke(initial_state)를 하면 이런 오류가 나는데 langsmith의 client 때문일까요? 아니면 다른 부분에 있는 걸까요?
-
미해결처음 해보는 맞춤형 LLM 만들기 – LoRA & QLoRA 파인튜닝 입문
강의 버퍼링 문제
안녕하세요, 강의 듣고 있는데 유독 강의가 버퍼링이 심합니다. 크롬 뿐만 아니고 Microsoft edge 등으로 해도 똑같은 현상이 발생합니다.
-
미해결LLM Finetuning : RunPod와 Multi-GPU 실습
stop button 이 안보이는데요?
terminate 만 있고 stop 버튼은 없는데요? terminate 누르면 걍 싹 삭제되서 다시 셋팅해야되고... 그냥 뉍두면 지가 돈 계속 깍아먹고... 이거 뭐 어쩌란 거죠?
-
미해결LLM Finetuning : RunPod와 Multi-GPU 실습
이 강의를 들으면 쇼핑몰 챗봇도 커버가 가능하나요?
LLM 파인튜닝을 해본적이 없어서 궁금한점이 많습니다.현재 강의의 목적이 shakepeare 스타일의 번역이라고 하셨는데, 그러면 이 강의를 들으면 번역에만 국한 되는건지, 아니면 사용자의 질문에 대답하는 챗봇 형태 등 다른 목적이나 분야도 커버가 되는건지 궁금합니다.
-
미해결LLM 애플리케이션 경험 공유회
사내망 전용 챗봇 개발
안녕하세요 현재 직원수가 400명 정도 되는 중견 기업에서 IT 부서에 근무하고 있는 직원 입니다.현재 python 으로 streamlit 이용해서 사내망 전용 챗봇을 개발 중입니다.ollama 를 이용 해서 일부 개발 진행 중인데 답변도 정확하지 않는 부분이 많습니다. 어떻게 하면 좋을까요 그리고 사내망 전용 챗봇 개발 시 참고 해야될 부분이 있으면 알려주시면 감사하겠습니다.
-
미해결AI 에이전트로 구현하는 RAG 시스템(w. LangGraph)
모델의 성능에 따라서 선택하는 도구가 많이 차이 나나요?
현재 섹션 2.16번 강의 학습 중에 있습니다.ollma를 통해서 gpt-oss:20b 모델을 로컬로 연결해서 학습하고 있는데, search_web 도구로만 응답을 하더라구요. 아무리 쿼리를 바꿔도 wiki_summary, wiki_search 와 같은 도구를 호출해서 응답을 작성하지 않습니다. 혹시 제가 놓치고 있는게 있을까요?
-
미해결LangGraph를 활용한 AI Agent 개발 (feat. MCP)
zerox 사용 시 강의에서 사용된 모델로 진행했을 때의 문제점.
안녕하세요 강사님!langchain 강의부터 잘 수강하고 있는 수강생입니다! 이번 강의 수강 중 궁금증이 생겨 질문 드립니다.zerox 라이브러리 사용해 md 파일로 변환하는 과정 중 자주 발생하는 에러가 있습니다.소스 코드는 강의내에서 작성한 코드와 똑같습니다1. ERROR:root:Failed to process image Error: Error in Completion Response. Error: litellm.RateLimitError: RateLimitError: OpenAIException - Error code: 429 - {'error': {'message': 'Rate limit reached for gpt-4o-mini in organization org-dDgP5bwE5XYlEkdzK49V0oM5 on tokens per min (TPM): Limit 200000, Used 200000, Requested 807. Please try again in 242ms. Visit https://platform.openai.com/account/rate-limits to learn more.', 'type': 'tokens', 'param': None, 'code': 'rate_limit_exceeded'}} LiteLLM Retried: 3 times Please check the status of your model provider API status. 2. Give Feedback / Get Help: https://github.com/BerriAI/litellm/issues/new LiteLLM.Info: If you need to debug this error, use litellm.set_verbose=True'. ERROR:root:Failed to process image Error: Error in Completion Response. Error: litellm.RateLimitError: RateLimitError: OpenAIException - Error code: 429 - {'error': {'message': 'Rate limit reached for gpt-4o-mini in organization org-dDgP5bwE5XYlEkdzK49V0oM5 on tokens per min (TPM): Limit 200000, Used 200000, Requested 807. Please try again in 242ms. Visit https://platform.openai.com/account/rate-limits to learn more.', 'type': 'tokens', 'param': None, 'code': 'rate_limit_exceeded'}} Please check the status of your model provider API status.위와 같이 모두 '분당 토큰 수' 제한 에러입니다.저는 처음에는 위 문제를 해결하기 위해 pdf 문서를 chunking 하여 한 번에 처리되는 토큰을 제한하려고 했습니다.=> 예) 총 페이지를 약 5~6개로 나눠 보내는 방법def get_total_pages(path: str) -> int: try: from pypdf import PdfReader except Exception: from PyPDF2 import PdfReader # 호환 return len(PdfReader(path).pages) def make_batches(total_pages: int, size: int): pages = list(range(1, total_pages + 1)) # 1-indexed for i in range(0, total_pages, size): yield pages[i:i + size]total = get_total_pages(PDF_PATH) print(f"Total pages: {total}") merged = [] for pages in make_batches(total, BATCH_SIZE): res = await process_with_backoff(pages) # 여기서 배치로 나눠진 항목들 수행=> 문제점 : zerox는 한 호출에서 처리한 페이지들만 마크다운 파일로 만들어 output_dir에 저장하고, 그 뒤에 만들어지는 파일들은 이어 붙여지지 않고 덮어 씌워집니다.이를 해결하기 위해 비즈니스 로직을 좀 더 구현해야 하나? 했는데.. 이 방법이 맞는지, 시간만 뺏기게 되는게 아닌지 의문이어서 일단 그만두었습니다. 두번째로는 강사님이 사용하신 모델 'gpt-4o-mini' 를 'gpt-4.1-mini' 로 변경하였습니다. 모델을 바꾸니 바로 해결이 되긴 했습니다.여기서 제가 궁금한 점은 현업에서 이런 작업을 진행 하다 보면 이런 데이터 전처리를 많이 하게 될 거 같은데.. 사이즈가 너무 큰 데이터는 어떤 방식으로 limit나 기타 오류(아직 어떤 오류가 빈번한지는 잘 모르는 상태입니다.)들을 해결해야 하는지가 궁금합니다!모델을 바꾸는게 맞는건지, 원본 데이터를 최대한 chunking 해서 제가 맨 위에 오류로 보여드린 200000 TPM 을 맞추려고 해야 되는건지... 요런 부분들이 궁금합니다! 긴 글 읽어주셔서 감사합니다!
-
미해결처음 해보는 맞춤형 LLM 만들기 – LoRA & QLoRA 파인튜닝 입문
추가 강의는 언제 올라오나요?
안녕하세요.8월 중으로 추가 강의가 올라온다고 되어있는데언제쯤 볼 수 있을까요?답변 부탁드립니다. 감사합니다.
-
미해결맞춤형 LLM 만들기 : 처음 시작하는 분을 위한 RAG 기초 개념부터 멀티모달·Agent 실습까지
섹션 1 퀴즈 2번 문제 리포팅
섹션 1 퀴즈 2에 정답이 2개 검색기, 생성기지만 선택이 하나만 되는 문제가 있습니다.멀티플 초이스가 안되고 생성기만 선택하면 오답으로 반응함.
-
미해결RAG를 활용한 LLM Application 개발 (feat. LangChain)
Langchain을 활용한 실습 주제 추천해주실 수 있으신가요?
안녕하세요 강사님! 이번에 처음 langchain 입문해서 강사님 기초 강의부터 쭉 수강했습니다개념 이해와 실습까지 함께 할 수 있어서 정말 좋았습니다! 다름이 아니구 혹시 실무에서 경험해볼수있는 실습 주제를 몇가지 추천해주실 수 있으신가요..? 아무래도 처음이다 보니 한번에 감이 잡히진 않아서요!! 감사합니다!
-
미해결[입문/초급] 다양한 예제를 통한 추천 시스템 구현
강의 pdf
안녕하세요~!강의 pdf 파일 받을 수 있을까요? 강의 듣고 복습하는데 pdf 파일로 복습하려고 하거든요!
-
해결됨RAG를 활용한 LLM Application 개발 (feat. LangChain)
tax_with_markdown 파일 내용 오류
안녕하세요:)퀄리티 높은 강의 만들어주셔서 감사합니다! 실습을 따라하면서 제 소득세 답변과 병진님의 소득세 답변이 달라서 (금액이 다름) 왜 그런가 이유를 찾아보았는데요. 올려주신 tax_with_markdown.docx 자료에서 기존 이미지의 금액과 다른 것을 확인하였습니다. (아래 빨간색 박스) 기존 이미지의 금액으로 변경해서 다시 pinecone에 index 올린 후에 채팅을 하니까 그제서야 병진님과의 답변과 똑같아졌네요! 자료 파일 다시 한번 확인해주시면 감사하겠습니다:)
-
미해결graphRAG - Neo4J로 구현하는 지식 그래프 기반 RAG 시스템 (feat. LangChain)
neo4j의 장점
지금 영화 추천하는 강의 보고 있습니다.질문 있습니다. 일반적인 sql 쿼리를 써도 해당 내용으로 추천 내용 다 작성 할 수 있을 것 같은데 neo4j 랑 사이퍼 쿼리를 쓰는 이유는해당 데이터를 노드화 해서 연결 함으로써검색 속도가 빨라지는 장점이 있을까요? 감사합니다.
-
미해결AI 에이전트로 구현하는 RAG 시스템(w. LangGraph)
Fan-in 시 여러개 노드에서 하나로 병합되는 과정에서 질문 입니다.
Fan in 되면서 3개 노드에서 1개 노드로 병합되는 과정에서, 그 1개 노드는 3개 노드가 전부 연산을 끝낼때까지 기다린 후 실행 되는건가요??
-
미해결프로젝트로 배우는 Python 챗봇 & RAG - LangChain, Gradio 활용
환경설정 질문
질문이 있습니다.선생님께서 설정된 toml 파일은 캐럿(^)을 포함한 버전이 설정되어 있는데, 제가 프로젝트를 생성하고 toml을 확인할 경우 명시적으로 범위가 설정되어져 있습니다. 물론 큰 차이는 없겠지만 나중에 실질적인 업무나 개인적인 프로젝트를 진행할 때 영향도가 있을까요?? 만약 있다면 선생님처럼 버전을 지정해서 등록할 수 있는 설정이 따로 있을까요??
-
미해결RAG를 활용한 LLM Application 개발 (feat. LangChain)
dictionary chain 생성 시 적절치 않은 변환
%pip install --upgrade langchain-text-splitters langchain-upstage from langchain_community.document_loaders import Docx2txtLoader from langchain_text_splitters import RecursiveCharacterTextSplitter text_splitter = RecursiveCharacterTextSplitter( chunk_size=500, chunk_overlap=100 ) #loader = Docx2txtLoader('./tax_with_table.docx') loader = Docx2txtLoader('./tax_with_markdown.docx') documents_list = loader.load_and_split(text_splitter=text_splitter) documents_list1=documents_list[len(documents_list)//2:] documents_list2=documents_list[:len(documents_list)//2] from langchain_upstage import UpstageEmbeddings from dotenv import load_dotenv load_dotenv() embedding = UpstageEmbeddings(model="solar-embedding-1-large") import os from pinecone import Pinecone from langchain_pinecone import PineconeVectorStore pinecone_api_key = os.environ.get("PINECONE_API_KEY") pc = Pinecone(api_key=pinecone_api_key) index_name = "tax-markdown-index" vector_store = PineconeVectorStore.from_documents(documents_list1, embedding, index_name=index_name) vector_store.add_documents(documents_list2) query = "연봉 5천만원인 직장인의 소득세는 얼마인가요?" #retrieved_docs = database.similarity_search(query) from langchain_upstage import ChatUpstage llm = ChatUpstage() # prompt = f""" # - 당신은 최고의 한국 소득세 전문가입니다 # - [Context]를 참고해서 아용자의 질문에 답변해주세요 # [Context] # {retrieved_docs} # Question: {query} # """ # ai_message = llm.invoke(prompt) from langchain import hub prompt = hub.pull("rlm/rag-prompt") # retriever = vector_store.as_retriever() # retriever.invoke("연봉 5천만원인 거주자의 소득세는 얼마인가요?") from langchain.chains import RetrievalQA qa_chain = RetrievalQA.from_chain_type( llm=llm, retriever=vector_store.as_retriever(), chain_type_kwargs={"prompt": prompt} ) query = "연봉 5천만원인 직장인의 소득세는 얼마인가요? 2024년도 소득 기준으로 하고 인적공제는 혼자고 공제항목은 평균정도로 잡아봐." ai_message = qa_chain({"query":query}) ai_message from langchain_core.output_parsers import StrOutputParser from langchain_core.prompts import ChatPromptTemplate dictionary = ["사람을 나타내는 표현 -> 거주자"] prompt = ChatPromptTemplate.from_template(f""" 사용자의 질문을 보고 우리의 사전을 참고해서 사용자의 질문을 변경해주세요. 만약 변경할 필요가 없다고 판단된다면 사용자의 질문을 변경하지 않아도 됩니다. 사전 : {dictionary} """) dictionary_chain = prompt | llm | StrOutputParser() dictionary_chain.invoke({"question": "연봉 5천만원인 직장인의 소득세는 얼마인가요?"}) tax_chain = {"query": dictionary_chain} | qa_chain ai_response = tax_chain.invoke({"question": "연봉 5천만원인 직장인의 소득세는 얼마인가요?"}) ai_response 이 상황에서 dictionary_chain.invoke({"question":"연봉 5천만원인 직장인의 소득세는 얼마인가요?"})를 했을때 직장인을 거주자로 바꾸는게 아니라 답변을 아래와같이줍니다 ㅜㅜ'사용자의 질문을 사람을 나타내는 표현을 우리의 사전을 참고하여 "거주자"로 변경해보겠습니다. 그러나 사용자가 질문을 아직 제출하지 않았으므로, 가상의 질문을 만들어 변경해보겠습니다.\n\n가상의 사용자 질문: "사람들이 자주 방문하는 관광지는 어디인가요?"\n\n변경된 질문: "거주자들이 자주 방문하는 관광지는 어디인가요?"\n\n만약 사용자의 질문이 이미 적절하거나 변경이 필요하지 않다고 판단되면 질문을 변경하지 않습니다. 실제 사용자 질문을 알려주시면 그에 맞게 도움을 드리겠습니다.' 그 결과 최종 response도 아래와같이 나와버리네요 ㅠㅠ ['e9f858cf-0c76-4887-9556-22c5f32eadf4', '40a151b4-ee72-4f3c-ab61-055114344dd9', '6072bcb7-4ea0-4fbc-8828-e74cb883d162', 'a6a9fc0d-eb7a-482d-8b9d-e12073ea6dce', '9d16b74e-557b-475d-b536-8f37e77306a8', '5ad3b09f-8afa-42b6-8cec-a77a525e6f4b', 'a678eb3b-1b5d-4106-888f-bdf3302ac84c', '57a9b7e1-9511-4a34-822d-7f2a0ae710fc', '4ecd54b8-fac0-459b-ae14-4985f2dd0a20', 'bc50c84a-4770-4756-a8d4-06985387f03b', '65a1116f-93c3-4a5b-8a17-3018ccbd26b0', 'cfde5547-ee30-417c-b2dd-ed0c7f7a602d', '5f9a45e2-0279-4363-bb7c-b0fe85cc0595', '907860e1-e1c4-410d-8fa2-8eb82808f008', '682389cf-f2ad-45df-9db8-a1b6b046f43d', '76395c00-dffa-4d26-9f5e-fd910228538c', '136528f9-c253-406f-a5c8-c8fcd4fad21f', '5f6c5158-cd35-4b74-ae75-ec1f34c35394', 'b8cb52ec-e324-48c1-83a1-31c02e4d202d', '98dfe4bc-c0de-4f7e-996e-bf20416915dc', 'c9018194-109e-443c-8dd0-af5607de3c6f', '2120a161-f0f4-4c91-9759-5bb0aebb995d', '96948c3b-5937-44c1-ad84-04ed923e695b', '490a568c-d378-4cbb-aa69-bf195e41371b', '14e8fcec-7c2c-45d6-ac7b-14c009a6acc5',... '84802efa-23df-4a84-b311-577933f09c51', 'a22be767-fa83-4325-a605-498647daa19e', '879e0a7f-50ed-4cf1-8b6e-f4dbd2a498fc', 'e275ec53-9664-4a18-a813-d40b0e130a23', 'fbde51af-1fbb-445b-8c59-68d61b9bfa2d']Output is truncated. View as a scrollable element or open in a text editor. Adjust cell output settings.../Users/arang/.pyenv/versions/3.13.2/envs/inflearn-llm-application/lib/python3.13/site-packages/langsmith/client.py:272: LangSmithMissingAPIKeyWarning: API key must be provided when using hosted LangSmith API warnings.warn({'query': '연봉 5천만원인 직장인의 소득세는 얼마인가요? 2024년도 소득 기준으로 하고 인적공제는 혼자고 공제항목은 평균정도로 잡아봐.', 'result': '연봉 5천만원의 직장인의 경우, 2024년도 소득 기준으로 산출세액은 552만원입니다. 여기에 근로소득세액공제 29만원을 적용하면, 최종 소득세는 523만원이 됩니다.'}{'query': '사용자의 질문이 "사람을 나타내는 표현은 무엇인가요?"라면, 우리의 사전을 참고하여 질문을 변경하면 다음과 같습니다: "거주자를 나타내는 표현은 무엇인가요?" \n\n만약 사용자의 질문이 다른 주제나 내용을 다루고 있다면, 해당 질문에 맞게 사전을 참고하여 변경할 수 있습니다. 만약 질문이 이미 명확하고 변경할 필요가 없다고 판단된다면, 질문을 그대로 유지할 수 있습니다.', 'result': '사용자의 질문이 "사람을 나타내는 표현은 무엇인가요?"라면, 우리의 사전을 참고하여 질문을 변경하면 다음과 같습니다: "거주자를 나타내는 표현은 무엇인가요?" 사전에서 "거주자"는 국내에 주소를 두거나 183일 이상의 거소를 둔 개인을 의미합니다.'}
-
미해결LangGraph를 활용한 AI Agent 개발 (feat. MCP)
yfinance 의 응답 (char 0)
안녕하세요 강의 잘 듣고 있습니다 ^^강의 진행중 yfinance. 의 응답이 (char 0) 이 나오는데요, 구글링 해보니 같은 경우가 과거에도 있었더라구요.해당 api. 서버가 죽은건지, 무엇인지 알수가 없네요대채 할수 있는 방법이 있을까요?
-
해결됨LangGraph를 활용한 AI Agent 개발 (feat. MCP)
window 11 환경 셋팅
안녕하세요! langraph를 업무에 사용예정이여서 강의 수강중입니다.윈도우 환경셋팅이 필요해서 다음 에러를 해결해서 개발환경 셋팅을 완료했습니다.앞으로 강의를 수강하는데 다음 uvloop 패키지가 없어도 괜찮을까요? chroma-hnswlib 도 무시하고 설치로 해도 괜찮은지 궁금합니다.가능하다면 윈도우 환경에서의 패키지 모듈 관리도 되면 좋을 것 같습니다 🙂 uvloop window 환경에서는 무시하고 설치하도록 변경'uvloop; sys_platform != "win32"', # ⬅ Windows에서는 설치 안 함chroma-hnswlibVisual C++ Build Tools 설치