에러메세지는 이건데요.. 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)로 넘어가고싶은데 매끄럽게 안되니까 초큼 힘들어요 ㅠ 제 환경이 잘못 구성된걸까요 ㅠㅠ
안녕하세요! 강의 모두 완료하고 업무에 잘 활용하고 있습니다. 다름 아니라, 리뷰 데이터를 PINECONE DB에 넣고, RAG로 해당 리뷰 데이터 기반 학습으로, LLM으로 질문 답변 생성시 훌륭한 답변을 얻을 수 있었습니다. 그런데 문제는 LLM 답변 생성시 PINECONE DB가 자료가 많아서 인지, 답변 시간이 25~40초 정도 걸립니다.ㅠ LLM 답변 속도를 개선할 수 있는 다른 방법이 있을까요? 궁금합니다.
안녕하세요, 완강 후 사내법규로 챗봇을 만들어서 잘 활용하고 있습니다! 이런 것이 가능하다고 윗분들에게 보여드렸고, 직원들을 위한 사내용 챗봇 프로젝트를 본격적으로 시작하게 되었습니다. 감사합니다 🙂 관련해서 문의드립니다. (질문 내용 수정) 사내 주요문서들이 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 등을 신청해야 답변이 가능한 내용일까요! 답변 주시면 감사하겠습니다.
안녕하세요 강사님, 강의 잘 듣고 있습니다. 개발 병행하면서 강의 수강 중인데, 끝까지 다 듣지 못한 점 미리 양해드립니다. LangGraph 공식 문서를 보면, Graph의 상태 스키마를 정의할 때 Pydantic의 BaseModel 보다 TypedDict 나 dataclass 를 사용하는 걸 더 권장하는 것처럼 보입니다. 강사님께서도 강의에서 주로 TypedDict 를 쓰시는 걸 확인했습니다. 그런데 개발을 하다 보니, TypedDict 는 런타임 유효성 검사나 구조화 파싱 기능이 없어서 LLM 응답이 해당 스키마에 맞게 출력되었는지 보장할 수 없는 점 이 불편하게 느껴졌습니다. 예를 들어, PydanticOutputParser(pydantic_object=MyModel) 처럼 출력 형식을 강제할 수 있는 기능은 TypedDict 에는 없어서, 결국 출력 파싱이 명확하지 않거나 "```json ... ```" 처럼 마크다운이 붙는 문제도 자주 발생합니다. 물론 TypedDict 는 속도 면에서 이점이 있고 LangGraph state로는 잘 어울린다는 것도 알고 있지만, 이런 이유 때문에 결국 스키마를 TypedDict 와 Pydantic 두 번 정의해야 하는 상황 이 종종 생깁니다. 그래서 질문드리고 싶은 건 다음과 같습니다: 하나의 스키마 정의만으로 상태 관리와 LLM 출력 파싱까지 모두 깔끔하게 처리하는 더 좋은 방법은 없을까요? 혹은 실무에서는 이런 문제를 보통 어떻게 해결하고 계신지도 궁금합니다. 감사합니다!
안녕하세요. 현재 회사 폐쇄망에서 코드를 돌리는데, Chroma.from_documents 부분에서 "[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain" 이러한 에러가 발생하고 있습니다. 이런 상황에서는 langchain_chroma에 대한 예외처리 요청하면, 문제 해결될까요?
안녕하세요 강사님 IDE 작업화면을 최대로 해도 글자가 잘 안 보일 수 있는데 작업화면을 화면의 일부로 사용하고 오른쪽에 글을 보여주시면 노트북으로 강의를 보는 입장에서 글자가 작아서 잘 안 보입니다. 다음 강의에는 노트북으로 학습하는 학습자의 입장도 고려 부탁드립니다. 강의는 너무 좋은 내용입니다 ! 쵝오 😀 감사합니다.
workflow.add_edge(START, "note1") workflow.add_edge(START, "note2") workflow.add_edge(START, "note3") 이렇게 해두면, 어떤 설정을 따로 안해도 note1,2,3이 동시에 실행되나요? note1 먼저 하고 note2 하고 그다음 note3이 되는게 아니죠? 그러면 병렬이 아니니까
문제 / 오류 / 질문에 대해 설명해 주세요 구글 캘린더 연동 시 강의에서 보여주셨던 것처럼 OAuth Redirect URL, Client ID, Client Secret 입력 필드가 없고 아래 이미지 처럼 로그인 영역만 보입니다. n8n 클라우드 환경입니다. 어떤 점이 잘못된걸까요? 오류 메시지가 있다면 작성해 주세요 사용 중인 워크플로우를 공유해 주세요 n8n 설치 정보 안내 n8n 버전: 데이터베이스 종류 (기본값: SQLite): n8n 실행 프로세스 설정 (기본값: own, main): n8n 실행 방식 (예: Docker, npm, n8n cloud, 데스크탑 앱 등): 운영 체제: iOS
문제 / 오류 / 질문에 대해 설명해 주세요 구글 캘린더 연동 시 강의에서 보여주셨던 것처럼 OAuth Redirect URL, Client ID, Client Secret 입력 필드가 없고 아래 이미지 처럼 로그인 영역만 보입니다. n8n 클라우드 환경입니다. 어떤 점이 잘못된걸까요? 오류 메시지가 있다면 작성해 주세요 사용 중인 워크플로우를 공유해 주세요 n8n 설치 정보 안내 n8n 버전: 데이터베이스 종류 (기본값: SQLite): n8n 실행 프로세스 설정 (기본값: own, main): n8n 실행 방식 (예: Docker, npm, n8n cloud, 데스크탑 앱 등): 운영 체제: iOS
안녕하세요. uv sync 로 커서에서 실행을 했는데요. 화면에서와 달리 google폴더도 없고, .env 파일도 없습니다. 2.5 웹 검색을 지원하는 Corrective RAG 에서 코드 실행중인데요. from dotenv import load_dotenv load_dotenv() 여기서부터 false 가 뜨고요 바로 밑 코드부터 에러가 뜹니다. --------------------------------------------------------------------------- OpenAIError Traceback (most recent call last) Cell In[2], line 4 1 from langchain_chroma import Chroma 2 from langchain_openai import OpenAIEmbeddings ----> 4 embedding_function = OpenAIEmbeddings(model='text-embedding-3-large') 6 vector_store = Chroma( 7 embedding_function=embedding_function, 8 collection_name = 'income_tax_collection', 9 persist_directory = './income_tax_collection' 10 ) 11 retriever = vector_ store.as _retriever(search_kwargs={'k': 3}) [... skipping hidden 1 frame] File c:\Users\LGCNS\inflearn-langgraph-agent\.venv\Lib\site-packages\langchain_openai\embeddings\base.py:338, in OpenAIEmbeddings.validate_environment(self) 336 self.http_client = httpx.Client(proxy=self.openai_proxy) 337 sync_specific = {"http_client": self.http_client} --> 338 self.client = openai.OpenAI(**client_params, **sync_specific).embeddings # type: ignore[arg-type] 339 if not self.async_client: 340 if self.openai_proxy and not self.http_async_client: File c:\Users\LGCNS\inflearn-langgraph-agent\.venv\Lib\site-packages\openai\_client.py:110, in OpenAI.__init__(self, api_key, organization, project, base_url, websocket_base_url, timeout, max_retries, default_headers, default_query, http_client, strict response_validation) 108 api_key = os.environ.get("OPENAI_API_KEY") 109 if api_key is None: --> 110 raise OpenAIError( 111 "The api_key client option must be set either by passing api_key to the client or by setting the OPENAI_API_KEY environment variable" 112 ) 113 self.api_key = api_key 115 if organization is None: OpenAIError: The api_key client option must be set either by passing api_key to the client or by setting the OPENAI_API_KEY environment variable 찾아보니 OPENAI_API_KEY가 없어서 뜨는 에러 같은데 어떻게 설정하면 되나요?