묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결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일 이상의 거소를 둔 개인을 의미합니다.'}
-
해결됨RAG를 활용한 LLM Application 개발 (feat. LangChain)
문서 전처리에 관한 질문
안녕하십니까 강사님. 제공해주신 고품질의 강의 너무 잘 보고 있습니다.3.6의 강의 내용 중 문서의 표에 대한 마크다운 전처리를 추천해주셨습니다. 만약 실시간으로 크롤링하는 데이터를 바탕으로 RAG 챗봇을 만든다고 했을 때, 크롤링된 문서를 자동적으로 전처리하는 로직은 따로 없을까요? 사용자가 수동적으로 해야하는 부분일까요? 감사합니다.
-
미해결RAG를 활용한 LLM Application 개발 (feat. LangChain)
저장 오류
소득세법을 저장하려고 doc파일로 저장을 눌렀는데 왜 안될까요? 파일은 저장되는데 막상 눌러서 들어가보면 빈페이지 밖에 안나와요
-
미해결RAG를 활용한 LLM Application 개발 (feat. LangChain)
Cursor 마우스오버 후에 보이는 argument 리스트
강사님 안녕하세요:) 사소하지만 아무리 검색해도 안나와서 질문드립니다ㅠ현재 편집기로 cursor를 사용중인데요! ('한시간으로 끝내는 LangChain 기본기' 강의 따라하면서 cursor를 이번에 사용하게 되었습니다) 강의 동영상에서는 함수 위에 마우스 오버하면 argument 옵션들이 쫙 보여서 어떤 인자를 넣어야할지 확인하기 쉬운데요. 제 환경에서는 모두 (function) : Any 로만 떠서 확인이 안되네요ㅠ cursor라서 안보이는걸가요? argument 리스트를 확인할 수 있는 옵션 아시면 알려주시면 감사하겠습니다!
-
해결됨RAG를 활용한 LLM Application 개발 (feat. LangChain)
ollama 코드 업데이트
강병진 강사님 안녕하세요:)하나하나 떠먹여주시는 강의 너무나 잘 듣고 있습니다!저도 하나하나 실습하면서 내용 소화시키는 중인데요ㅎㅎ 3.1.3 실습을 하는 중에, ollama가 그 사이에 업데이트 되어서 공식 문서를 보면 더이상 langchain_community를 import 하지 않더라구요! 화면에 보여주신 아래 링크 보면서 자체적으로 langchain-ollama 설치하고, langchain_ollama의 ChatOllama import해서 실습 따라해보았습니다.https://python.langchain.com/docs/integrations/chat/ollama/ 업데이트된 내용 모르실까봐 공유 드려보았습니다!(사소하지만 ipynb 파일 이름에서 ChatOllana라고 오타가 있더라구요~ 이것도 도움될까봐 일단 공유 드려보아요!)https://github.com/jasonkang14/inflearn-rag-notebook/blob/main/3.1.3%20%ED%99%98%EA%B2%BD%20%EC%84%A4%EC%A0%95%EA%B3%BC%20LangChain%EC%9D%98%20ChatOllana%EB%A5%BC%20%ED%99%9C%EC%9A%A9%ED%95%9C%20%EA%B2%80%EC%A6%9D.ipynb 좋은 강의 만들어주셔서 다시 한번 감사합니다. 🙂
-
해결됨RAG를 활용한 LLM Application 개발 (feat. LangChain)
Chroma.from_documents 수행시 kernel 중단
안녕하세요, 강의를 듣고 있는 수강생입니다.퀄리티 있는 강의 감사드립니다. 다름이 아니라, 저는 윈도우 환경에서 VisualStudio에서 소스를 돌리고 있고 소스를 실행하는 실행환경은 venv 가상환경 python 3.10.11 버전으로 구성을 했습니다. 다른 소스는 문제 없이 수행되나Chroma.from_documents 수행시에 kernel 이 중단되는 문제가 있습니다. C기반의 라이브러리 충돌이나 시스템 메모리 충돌일 가능성이 높다고 하여 python 버전도 바꿔보고, 깔려 있는 라이브러리들의 버전도 바꿔보고 C기반 라이브러리도 다시 설치해보고 했으나 여전히 저 과정에서 죽습니다. documents 사이즈를 한문장 처럼 작은 단위로 줄여서 시도도 해봤으나 이것도 저한테는 효과가 없네요.. 같은 데이터셋으로 FAISS에 저장하는 건 제 가상환경에서도 성공하는데...Chroma만 되지 않습니다.. 혹시 어떻게 하면 좋을지 조언 얻을 수 있을까요?
-
미해결맞춤형 LLM 만들기 : 처음 시작하는 분을 위한 RAG 기초 개념부터 멀티모달·Agent 실습까지
실습을 위한 구글 드라이브 접근권한 해제요청
아래 2개 링크에 대한 접근권한이 막혀있습니다.ㅠㅠ권한을 풀어주세요...-- 아래 --[실습] 벡터_데이터베이스_기반_RAG어플리케이션[실습] PDF내용_기반_질의응답_애플리케이션[실습] DB_to_VectorDB_Searching_Chatbot
-
미해결맞춤형 LLM 만들기 : 처음 시작하는 분을 위한 RAG 기초 개념부터 멀티모달·Agent 실습까지
구글 드라이브 접근권한이 없습니다 ㅠ
실습하고싶은데 구글드라이브 접근권한이 없네요creee77@gmail.com 으로 요청드렸습니다
-
해결됨RAG를 활용한 LLM Application 개발 (feat. LangChain)
모델을 어떻게 개선해야하는지 잘모르겠습니다.
수업 너무 잘들었습니다. 제가 강사님 수업을 듣고, 사용자 질의에 따라 sql 쿼리를 반환하는 모델을 만들어보고 있는데요, 모델은 허깅페이스에서 "LGAI-EXAONE/EXAONE-3.0-7.8B-Instruct" 이용해서 만들고 있는데, 요청에 따라 적절히 sql 쿼리를 만들려면, 일단 모델이 1) db 테이블 구조를 명확히 알아야하고, 2) 질의를 db 테이블 용어(ex: '카톡'을 얘기했을때, sns_type =1 로 대체)로 대체하는 dictionary가 잘되어야 할것같은데, 현재는 프롬프트에 1) few_shot 예시와, system 프롬프트에 2) 테이블 구조에 대한 설명, sql 작성 규칙 등을 넣어서 결과를 받고 있습니다.(system 프롬프트는 langChain hub에서 rlm/text-to-sql을 참조 했습니다) 예시와 유사하거나 예시에서 약간 변화를 준 질의에 대해서는 잘 답변을 하고있는데, 조금만 벗어나면 잘못된 답을 줍니다.예를들면 userid 칼럼인데 user_id 로 적는다던지, 말을 조금만 바꿔도 못알아 듣는다던지, 심지어 dictionary_chain에 프롬프트로 잡아줘도 대체를 못하는 경우도 있습니다. 어떻게 모델이 질문에 유연하게 이해하고 적절히 답을 하도록 만들어야하는지 방향을 잘모르겠습니다. 조언 부탁드립니다ㅠ 🙏 (그리고 벡터스토어를 효용성을 못찾고 이용하지 않고 있는데 이 모델에서 벡터 스토어를 잘 이용할수 있는 방법이 있을까요?)
-
해결됨RAG를 활용한 LLM Application 개발 (feat. LangChain)
2가지 질문드려 봅니다.
안녕하세요 강사님! 두 가지 질문이 있어서 글을 남겨 봅니다. Vector DB에 데이터를 넣기 위해서 임베딩 모델을 사용했는데 아직 실습을 따라하지 않아서 해당 모델을 사용해도 API 비용이 발생하는 것인지 궁금합니다. 또한, Upstage 외에 무료 임베딩 모델이 있는지도 궁금합니다. (실습은 OpenAI로 진행 예정이지만, 개인적으로 궁금해서 여쭤봅니다)이거는 개인적인 질문인데 어제 GPT-OSS가 나왔는데, 20B 기준으로 로컬에서 문제 없이 돌아가더라구요. LangChain Ollama로 이 모델을 사용해서 현재 RAG 강의와 강사님 Agent강의 등 다른 강의 사용에 문제가 없을지 그리고 이 모델에 대한 견해가 궁금합니다!
-
해결됨RAG를 활용한 LLM Application 개발 (feat. LangChain)
LlamaIndex에 대한 강사님의 견해가 궁금합니다.
안녕하세요! 수업 잘 듣고 있습니다.수업을 들으면서 Rag 관련해서 정보를 찾아보던 중에 LlamaIndex 라는 것을 알게 됐는데 마찬가지로 Rag에 사용된다는 이야기를 들었습니다. 이 라이브러리에 대해서는 어떻게 생각하시는지 그리고 Langchain 만 알아도 굳이 LlamaIndex까지 공부할 필요는 없을지도 궁금합니다. 질문이 두서 없어서 죄송합니다! 감사합니다!
-
해결됨RAG를 활용한 LLM Application 개발 (feat. LangChain)
llm.invoke() 시 'Incorrect API key provided' 오류가 발생합니다.
'Incorrect API key provided' 강의 내용과 동일하게 아래 주소로 로그인 후 'Create new secret key'를 통해서 API KEY를 발급받았습니다.https://platform.openai.com/api-keys이후에 Copy 버튼 클릭해서 환경변수(.env) 파일에 OPENAI_API_KEY=복사한_API_KEY 저장 후 ChatOpenAI를 통해서 선언한 llm을 invoke()했는데, 반복적으로 Incorrect API Key provided 오류가 발생합니다.혹시나 잘못 복사해서 붙여넣었나 싶어서 삭제 후 API KEY를 신규 생성 후 동일하게 invoke 해봤는데, 문제가 해결되지 않았습니다.혹시 다른 원인이 있을까요?? 답변 기다리겠습니다.
-
미해결RAG를 활용한 LLM Application 개발 (feat. LangChain)
연봉 5000만원에 대한 소득세가 다르게 계산되는 문제
4강까지 강의를 다 들었습니다.하지만 연봉 5천만원인 거주자의 소득세는? 이라는 쿼리를 날릴경우 답변이 624만원이 나오지 않고 다양한 값이 나오고 있는것을 확인했습니다.upstage model을 사용하고 pinecone vector store 를 사용하고 있으며 dictionary chain 까지 구성해서 직장인 -> 거주자로 바꾸는것 까지 적용해서 invoke 를 실행했습니다.직접 테스트한 예시로는 'query': 연봉 5천만원인 거주자의 소득세는 얼마인가요? 소득구간별 세율의 예시를 보여주면서 설명해줘,'result': '연봉 5천만원인 직장인의 소득세는 550만원입니다. 소득구간별 세율에 따라 계산하면, 5천만원 이하의 과세표준에는 15%의 세율이 적용되어 84만원 + (1,400만원을 초과하는 금액의 15%) = 550만원이 소득세로 산출됩니다.'},{'query': '연봉 5천만원인 직장인의 소득세는 얼마인가요?', 'result': '연봉 5천만원인 직장인의 소득세는 550만원입니다. 이는 종합소득 과세표준 5,000만원 이하 구간에 해당하는 세율을 적용하여 계산한 금액입니다.',{'query': '연봉 5천만원인 직장인의 소득세는 얼마인가요?', 'result': '연봉 5천만원인 직장인의 소득세는 526만원입니다. (산출식: 5,000만원 - 1,400만원 = 3,600만원, 3,600만원 * 15% - 84만원 = 420만원)'}이런식으로 지속적으로 다른 답이 나오고 있으며 "소득구간별 세율의 예시를 보여주면서 설명해줘" 이 부분을 추가하지 않고 처음 쿼리를 날리면 직장인의 소득세는 xxx 만원입니다. 하고 바로 끝나는 result가 나왔습니다.이러한 원인이 upstage 모델을 사용해서 이런 결과가 발생했는지 궁금하고 4강에서 설명했던 few-shot prompting 이 되지 않아서 처음에는 정확한 답을 주지 못하고 있다가 "소득구간별 세율의 예시를 보여주면서 설명해줘" 이 부분이 추가되면서 다음 응답들이 더 자세하게 나오게 된 것인지 궁금합니다.
-
해결됨RAG를 활용한 LLM Application 개발 (feat. LangChain)
유사도 검색 차이
안녕하세요. 수업을 듣고 실습도 같이 해보고 있습니다.유사도 쿼리 관련해서 질문이 있어서 문의드렸습니다.같은 upstatge 임베딩 모델을 사용했고 chunk size 등 같은 문서 spliter 를 사용했는데 유사도 검색에서 나오는 결과가 예시랑 다르게 나오는 이유가 무엇인가요?
-
미해결RAG를 활용한 LLM Application 개발 (feat. LangChain)
langchain만으로 심리 상담 챗봇을 만들 수 있을까요?
안녕하세요.현재 강의에서 배운것만으로도 심리 상담 챗봇을 만들 수 있을까요? 소득세법 같이 정답이 있는 자료는 없는것 같아 인터넷 서칭으로 자료들을 긁어모을 생각입니다. ex) 연애 심리 상담 Bot- 연애에 대해 고민하는 사람들에게 질문에 따른 조언을 해줌- 연애 커뮤니티 등에서 수동으로 데이터 수집- 도움이 되는 질문들과 댓글을 직접 선정하여 .docs 문서에 복사 붙여넣기 알찬 강의 만들어 주셔서 감사합니다! (수강평 작성했습니다. 데헷)
-
미해결RAG를 활용한 LLM Application 개발 (feat. LangChain)
이미지와 표가 혼재된 pdf파일 불러오기
안녕하세요 강병진 강사님 강의에서는 docx파일을 불러오셨는데, 혹시 이미지나 표가 포함된 pdf파일을 불러오기 위해서는 어떤 라이브러리를 쓰는게 좋을까요? PyMuPDFLoader를 사용했을 때는 이미지 안에 있는 내용을 전혀 텍스트로 변환하지 못하는 것 같아서 질문드립니다. 감사합니다.
-
미해결RAG를 활용한 LLM Application 개발 (feat. LangChain)
fine-tunning은 어떻게 생각하세요?
fine-tunning은 어떻게 생각하세요? 강사님이 알려주신 내용대로 RAG만 하면, fine-tunning은 할 필요가 없을까요? 아니면 fine-tunning이 필요한 영역이 따로 있는 걸까요? fine-tunning에 대해서 어떻게 생각하시는지 궁굼해서 문의드립니다 :)
-
해결됨RAG를 활용한 LLM Application 개발 (feat. LangChain)
3.6 일부 코드가 강의 그대로 따라하면 에러나요
에러메세지는 이건데요..KeyError: "Input to ChatPromptTemplate is missing variables {'dictionary'}. Expected: ['dictionary', 'question'] Received: ['question']" 그래서 아래처럼 고쳤더니 결과는 잘 나오는데new_question = dictionary_chain.invoke({ "dictionary": dictionary, "question": query })이러고 나서 또 밑에 ai_response관련 코드도 같은 에러가 나오다보니 강의를 매끄럽게 들을 수 없고 자꾸 흐름이 끊기네요. 사실 3.5때도 강의코드 그대로 따라하니까 llm이 답변을 제대로 안해줘서, chunk_size / overlap 이렇게 저렇게 조정하고. 조정해보니 또 한번에 넣을 수 없는 사이즈라서 배치처럼 짤라서 넣고. 우여곡절 끝에 강의랑 동일한 결과를 얻긴 했는데요...빠르게 슥슥 듣고 강사님 다른 강의(ai agent)로 넘어가고싶은데 매끄럽게 안되니까 초큼 힘들어요 ㅠ제 환경이 잘못 구성된걸까요 ㅠㅠ
-
미해결RAG를 활용한 LLM Application 개발 (feat. LangChain)
PINECONE DB 답변 생성시 속도 문의 건
안녕하세요!강의 모두 완료하고 업무에 잘 활용하고 있습니다.다름 아니라, 리뷰 데이터를 PINECONE DB에 넣고, RAG로 해당 리뷰 데이터 기반 학습으로, LLM으로 질문 답변 생성시 훌륭한 답변을 얻을 수 있었습니다.그런데 문제는 LLM 답변 생성시 PINECONE DB가 자료가 많아서 인지, 답변 시간이 25~40초 정도 걸립니다.ㅠLLM 답변 속도를 개선할 수 있는 다른 방법이 있을까요?궁금합니다.
-
미해결RAG를 활용한 LLM Application 개발 (feat. LangChain)
ppt 문서 학습방법 문의
안녕하세요, 완강 후 사내법규로 챗봇을 만들어서 잘 활용하고 있습니다! 이런 것이 가능하다고 윗분들에게 보여드렸고, 직원들을 위한 사내용 챗봇 프로젝트를 본격적으로 시작하게 되었습니다. 감사합니다 🙂관련해서 문의드립니다.(질문 내용 수정)사내 주요문서들이 ppt로 되어 있는 경우가 많아 ppt를 RAG로 활용하는 방법 문의드립니다.아래 코드를 사용해서 ppt에 있는 텍스트를 docx 파일로 만들었습니다.from pptx import Presentation from docx import Document def extract_text_from_pptx(file_path): prs = Presentation(file_path) text_list = [] for slide in prs.slides: for shape in slide.shapes: if hasattr(shape, "text"): text_list.append(shape.text) return "\n".join(text_list) def save_text_to_docx(text, output_path): doc = Document() for line in text.split('\n'): doc.add_paragraph(line) doc.save(output_path) # 실행 예시 ppt_file = "OOO.pptx" # 파일명 확인 text = extract_text_from_pptx(ppt_file) save_text_to_docx(text, "ppt_extracted_text.docx")문제는, ppt에서 이렇게 도식화 되어 있는 경우에, 도식 순서대로 text로 변환해주지 않는다는 점인데요, 혹시 이런 경우에 도식을 이해해서 text로 변환해주는 방법이 있을까요? 위 코드로 text 추출 시, 장표 내 text만 추출이되고, 이미지는 변환이 안되는데요'은행거래명세서 보여줘' 라고 질문하면 파란색 이미지 부분이 나오도록 구현하는 방법도 있을까요? 아래처럼 이미지와 텍스트를 함께 학습해서 이해시키도록 한 뒤 RAG를 구현할 수 있는 방법이 있을지도 문의드립니다. 더 많은 직원들이 streamlit을 조회한다고 할 때, 원활하게 조회되도록 하려면 유료용을 결제하면 되는걸까요? 조회자가 많아 질 경우 추가로 하면 좋은 조치들이 어떤게 있는지 궁금합니다. 질문이 많았습니다. 혹시 1:1 등을 신청해야 답변이 가능한 내용일까요! 답변 주시면 감사하겠습니다.