안녕하세요. 남박사님의 여러가지 강의를 앞전에 많이 들었지만 특히 이번 강의는 전혀 지루하지 않고 처음 접하는 강의라서 정말 재미있게 잘 듣고 있습니다. 감사합니다. 다름이 아니라 텔레그램이나 디스코드같은 연동은 있지만 실무에서 응용해서 쓸려면 카톡과 연동해서 만드는게 필수라고 보는데 혹시 차후에 카톡과 연동해서 강의를 만드실 예정은 없으신지요? 앞전에 파이썬 강의를 들었을때 다른 플랫폼보다 사전 작업이 굉장히 복잡하다는건 알고 있어서 n8n 중급강의 같은거로 해서 나왔으면 하네요 ㅎ
. AI Agent에 직접 Google API 를 사용해서 구글 검색 툴 작성하기 를 다시 보고 있는데요.. 파라미터에 q 를 넣고 value Provided 를 입력 하는 부분이 있는데요.. By Model 로 나오는데요. 제가 설치한 n8n 에는 그런 부분이 없고 그냥 value 로 되어 있습니다. 전에 한번 본게 있어서 value 에다가 컬럼을 끌고 와서 넣었는데.. 추천 할 수 없다고 나옵니다.. 그런데..http 에서 Execute step 를 해보면 결과가 나옵니다.. 이게 왜 그럴까요? 영상과 입력 하는 부분이 다르니까 좀 당황 스럽네요..
Code에서 relativedelta 를 import 해서 실행하면 ModuleNotFoundError 가 발생하는데, 어떻게 해결이 가능한가요? n8n 은 별도의 n8nio/n8n으로 단독 설치한 버전입니다. ( Version 1.99.1) -- 소스 -- from datetime import datetime from dateutil.relativedelta import relativedelta # 이전 노드의 데이터를 가져옵니다. first_item_json = _input.first().json code = first_item_json.get("code") input_ymd = first_item_json.get("ymd") # 'YYYYMM' 형식의 입력값 base_date = None # 'input_ymd' 값이 유효한 'YYYYMM' 형식인지 확인합니다. if input_ymd and len(input_ymd) == 6: try: # 'YYYYMM' 문자열을 datetime 객체로 변환합니다. (일자는 1일로 자동 설정) base_date = datetime.strptime(input_ymd, '%Y%m') print(f"입력된 ymd '{input_ymd}'를 기준으로 계산합니다.") except ValueError: # 형식은 맞지만 유효하지 않은 값(예: '202313')일 경우 print(f"잘못된 ymd 값 '{input_ymd}'입니다. 현재 날짜를 기준으로 합니다.") base_date = datetime.now () else: # 'input_ymd' 값이 없거나, 비어있거나, 길이가 6이 아닐 경우 print("ymd 값이 없거나 형식이 올바르지 않아 현재 날짜를 기준으로 합니다.") base_date = datetime.now () # 기준 날짜로부터 한 달 전을 계산합니다. target_date = base_date - relativedelta(months=1) # 계산된 날짜를 다시 'YYYYMM' 형식의 문자열로 변환합니다. output_ymd = target_date.strftime('%Y%m') print(f"최종 계산된 ymd: {output_ymd}") # 결과를 반환합니다. return [{ "code": code, "ymd": output_ymd }] -- -- 오류 내용 --
파인콘 사용시에 2MB 초과하는 문제 있잖아요. 그래서 다른 답변들 보고 사이즈 조정해서 사이즈만 맞춰서 했더니 저장은 문제 없이 됬는데 저희 수업 내용상 질문이 '연봉 5천만원인 직장인의 소득세는 얼마인가요?' 라는건데 기존 크로마 이용시에는 {'query': '연봉 5천만원인 직장인의 소득세는 얼마인가요?', 'result': '연봉 5천만원인 직장인의 소득세는 "근로소득에 대해서는 기본세율"이 적용된다고 명시되어 있습니다. 기본세율에 의한 과세는 종합소득세 과세표준에 따라 결정되며, 구체적인 세금 금액은 소득 공제 등이 고려되어야 하므로 단순 계산으로 제시할 수 없습니다. 따라서, 구체적인 세금을 산정하기 위해서는 소득세율표와 개인 소득 공제를 참고해야 합니다.'} 파인콘 사용시에는 {'query': '연봉 5천만원인 직장인의 소득세는 얼마인가요?', 'result': '연봉 5천만원인 직장인의 소득세는 84만원과 1,400만원을 초과하는 금액의 15퍼센트를 더한 것입니다. 이를 계산하면, 소득세는 약 474만원입니다.'} 같은 문서를 가지고 DB만 달리 하는건데 이렇게 답변이 상이하게 나오면 문서가 제대로 벡터DB에 저장이 안됬다고 생각할수 있는건가요? 원인이 궁금합니다. 그리고 수업 영상 랭체인 홈페이지에서 나오는 코드랑 실제로 들어가서 버전 맞추어도 예제 코드가 달라서 좀 어려움이 있습니다. 10분짜리 영상을 30분 넘게 보게 됩니다. 그나마 깃허브 코드가 비슷해서 그걸로 사용하고 있습니다.
안녕하세요 지난번에 많은 도움 받았던 윤상필입니다. 추가 강의는 너무 감사합니다! 다만 아직 진행하지는 못했습니다 그전에 본업과... 사고친것을 수습하느나 벌써 열흘의 시간이 흘렀내요 추가 강의는 진행해보고 궁금한거 있으면 연락드리겠습니다 오늘은 다름아니라 위에 언급한 사고때문에 발견한건데요 배경은 이렇습니다. 코드노드에서 const crypto = require('crypto'); 이걸 사용하고싶었는데요 리퀘스트 자체가 되는지 모르겠다만.. 우선 지피티에서는 된다 하였고 진행하였습니다 도커 컴포즈도 건드려보고 이렇게 저렇게 하다가 docker-compose down -v 하라고 하더군요 진행했고... 그결과 볼륨이 다 삭제가 되버려서 기존에 있던 워크플로우가 모두 지워졌습니다 지피티에서는 로컬 디렉토리를 앞으로는 바꾸라고 하는데요 거기까진 진행을 못했습니다. 여튼 복습한다 생각하고 다시 만들어가면될텐데요 그전에 백업에 대한 욕구가 생겼습니다. 강의 안대로 진행하면 백업자체는 가능합니다 다만 복구가 진행이 되지않았습니다 (제컴터의 문제 일수도 있지만 공유드려 봅니다) https://level-sodalite-012.notion.site/2297117a1a43809ea70ce9c53ebbd34b 지피티와의 대화는 pdf로 저장하였으나, 인프런에 업로드가 되지 않아 노션에 저장하고 공유해드립니다. (지피티는 두번의 대화를 하였고, 실패를 먼저 대화하였고, 그뒤 다시 지피티대화를 열어서 진행하였습니다) 지피티 pdf 저장은 크롬 확장프로그램으로 진행하였습니다 매번 도움주셔서 감사합니다!
강의 46 듣고 질문드립니다. 여러 노드가 병렬로 수행 되면서 동일한 ToolSearchState를 접근해서 데이터를 수정하게 되면 thread-safety 문제가 발생할 텐데 이런 부분에 대한 설명이 명시적이지 않아서 어떻게 처리 되는 건지 궁금합니다. Langchain에서 State 클래스는 이미 thread-safety를 보장하는 것인가요? 아니면 강의 예제에는 없었지만 실 구현시에는 사용자가 직접 thread-safety에 대한 고려를 해서 코딩해야 하는 건가요?
안녕하세요. Self RAG 에이전트 구현하기 강좌에 대한 질문이 있습니다. 중간 중간에 결과 평가하는 것 중 검색된 문서와 질문에 대한 관련성을 평가하는 부분이 있는데요, 검색 자체를 embedding된 vector에서 similarity search를 하여 뽑아 낸 것들이고, 이 방식 자체가 질문과 유사한 문서를 뽑아 내는 기술인데 굳이 LLM으로 하여 다시 평가를 하게 하는 이유는 뭘까요? 벡터 embedding 과 유사도 검색에 대한 기술이 LLM에 맏기는 것 보다 유사도 검색에 있어 더 정확해야 하는 것이 아닌가 하는 생각이 들어서요. LLM이 하는 유사도 평가가 더 정확하다면 굳이 벡터 embedding 같은 기술을 쓸 필요가 있을까 싶어서 질문 드립니다.
패키지 설치: poetry add python-dotenv langchain langchain_openai gradio 위를 입력하는데, 아래 처럼 같은 에러가 수십번 납니다 PS D:\mypersonal\myprojects\LANGCHAIN\qa-bot> poetry add python-dotenv langchain langchain-openai gradio Using version ^1.1.1 for python-dotenv Using version ^0.3.26 for langchain Using version ^0.3.27 for langchain-openai Using version ^5.35.0 for gradio Updating dependencies Resolving dependencies... (1.1s) The current project's supported Python range (>=3.10) is not compatible with some of the required packages Python requirement: - langchain-text-splitters requires Python <4.0,>=3.9, so it will not be installable for Python >=4.0 Because no versions of langchain match >0.3.26,<0.4.0 and langchain (0.3.26) depends on langchain-text-splitters (>=0.3.8,<1.0.0), langchain (>=0.3.26,<0.4.0) requires langchain-text-splitters (>=0.3.8,<1.0.0). Because langchain-text-splitters (0.3.8) requires Python <4.0,>=3.9 and no versions of langchain-text-splitters match >0.3.8,<1.0.0, langchain-text-splitters is forbidden. Thus, langchain is forbidden. So, because qa-bot depends on langchain (^0.3.26), version solving failed. * Check your dependencies Python requirement: The Python requirement can be specified via the python or markers properties For langchain-text-splitters, a possible solution would be to set the python property to ">=3.10,<4.0"
모두를 위한 대규모 언어 모델 LLM Part 5 - LangGraph로 나만의 AI 에이전트 만들기
안녕하세요, 강의 감사히 잘 보고 있습니다. Plan-and-Execute 강의 코드 보다가 궁금한 점이 있는데요, 다른 agent 구성에서는 동기 방식으로 def를 정의했었는데, 여기에서는 async와 await, .ainvoke의 비동기 방식으로 agent를 정의하는 것 같아 왜 여기서는 비동기 방식으로 정의하는지 여쭤봅니다. plan -> execute -> replan 자체도 순차적으로 실행되는 것 같은데(RAG와 같이), 비동기 방식이 어떤 이유로 필요한 것인지 질문드립니다. 감사합니다.
모두를 위한 대규모 언어 모델 LLM Part 5 - LangGraph로 나만의 AI 에이전트 만들기
안녕하세요, 강의 잘 듣고 있습니다. 강의자료 관련하여 Structured outputs 관련 자료는 '강의 슬라이드 다운로드'를 통한 다운로드에도 포함되어 있지 않고 강의 화면에서 아래로 스크롤을 내려서도 확인할 수 없는데, 어디서 받을 수 있는지 답변주시면 감사드리겠습니다.