docker compose up 이 아니라 For everyone else git clone https://github.com/n8n-io/self-hosted-ai-starter-kit.git cd self-hosted-ai-starter-kit docker compose --profile cpu up 이렇게 해야하는거 아닌가요?
남박사님 덕분에 천천히지만 잘 따라가고 있습니다. 메일을 확인해서 미팅관련 메일이 있을 경우 구글 캘린더에 등록하고 회신까지 하는 프로젝트는 재밌게 보았는데요, 제가 테스트할 때 메일이 3개가 들어와 있었는데 그 중 하나만 제가 일정 등록을 하기 위해 TEST로 보낸 메일이었고 나머지는 일반 메일이었습니다. 이 경우 AI Agent가 일정관련된 내용인지는 판단하여 구글 캘린더에 등록을 하지만 메일을 보내는 건 3개가 전부 넘어가더라고요. 이전 시간에 배운 Switch 노드 같은걸 이용해서 회신을 보낼 메일(미팅 일정관련인지) 여부를 판단해서 나누는게 좋을까요?
남박사님 강의 잘 듣고 있습니다. 스팸 여부를 판단할 때, Structured Output Parser에서 "is_spam" : "스팸여부" 를 판단하는데, 여기서 어쩔 때는 true/false, 또 어쩔 때는 yes/no 혹은 이 두 가지가 섞여서 나오기도 합니다. 형식을 정확히 지정할 수는 없을까요? 그리고 추가로 위와 같이 노드들을 연결한 뒤에 실행을 하면, Gmail 트리거가 작동을 하지 않습니다. 지메일 노드에서 개별적으로 실행을 하면 작동을 하는데, 전체 Test Workflow를 누르면 네이버만 실행되는데 어떻게 해야 할까요?
markdown(md) 을 text(txt) 로 변환한 다음에 load 하고 split 을 해줘야함 txt 로 변환된 건 langchain 의 textloader 를 써서 load 해야함 이때, utf-8로 encoding 된 txt 파일을 langchain_community 로 TextLoader 하려고 할때 encoding 을 안쓰게 되면 cp949 에러가 나게 됩니다. 너무 기초적인 질문이라 질문글에 없는 것 같아 혹시 저같은 초보를 위해 기록을 남겨 둡니다.^^ (참고로 저는 윈도우 환경으로 따라 하고 있는 중 입니다) from langchain_community.document_loaders import TextLoader loader = TextLoader(text_path, encoding='utf-8') # ✅ 인코딩 명시 document_list = loader.load_and_split(text_splitter) 또한 윈도우에서 uv.lock 을 읽어들일수가 없었는데요... 혹시 윈도우에서도 가능하셔서 하신분 계시면 노하우(?) 부탁드릴게요~
안녕하세요. 강의 17:40초에 진행되는 파라미터 cx, key, q 설정을 할 때 3가지 모두 Using Field Below 항목이 빈 값이기 때문에 다른 질문자분 질문에 답변을 주신것처럼 Defined automatically by the model을 모두 선택해서 진행했는데 구글 api에서 사용자 인증 정보에 새로운 API Key 확인이 안됩니다.
안녕하세요, n8n에서 gemini를 연결 중에 오류가 발생해서 찾아보다가 문의드립니다. 1) api를 붙여 credential 생성하려고 했으나 'SELF_SIGNED_CERT_IN_CHAIN' 오류 발생. 2) 챗지피티한테 확인해보니 ssl 연결시 자체 서명된 인증서가 껴 있다는 내용으로 회신 구체적인 내용은 이해를 못했지만 대략 회사 보안 환경과 충돌이 생겨서 그런 것 같더라고요.(회사 노트북으로 수강중) 사내 보안 환경에서는 일부 기능이 제한되는 것으로 이해하면 될까요?
모두를 위한 대규모 언어 모델 LLM Part 5 - LangGraph로 나만의 AI 에이전트 만들기
안녕하세요.. Plan and Executor 아키텍처에서는 Planning 하고 하나의 태스크를 실행하고, 그리고 다시 Replanning 에이전트를 거치면서 답변을 만들어 가는데, ReWoo 아키텍처에서는 RePlanning 과정에 대한 설명이 없던데.. 그렇다면 ReWoo 아키텍처의 Planner 에이전트 성능이 좋아서 모든 게획을 세운것처럼 보이는데. Plan and Executor의 Planner 에이전트도 모든 계획을 세운 것이 아닌건가요? 둘사이 프롬프트가 달라서 그런건가요? ReWoo에서는 왜 재계획 에이전트가 필요없는건가요?
@tool def retriever_tool(query: str) -> str: """사용자의 질문에 기반하여 벡터 스토어에서 회사 HR 문서를 검색합니다. 이 도구는 RAG(Retrieval Augmented Generation) 방식을 사용하여: 가장 적합한 문서를 찾아냅니다. Args: query (str): 사용자의 질문 (미리 정의된 질문이 사용됨) Returns: str: 문서 내용 """ _response = _retriever.invoke(query) return _response _research_tools = [retriever_tool] _research_agent = create_react_agent( llm, tools=_research_tools, state_modifier='당신은 HR 담당자 입니다. 의견이 아닌 사실만 제공하세요' ) def _db_research_node(state: MainState) -> Command[Literal["supervisor_node"]]: """ HR 조사 node입니다. 주어진 State를 기반으로 HR 조사 에이전트를 호출하고, 결과를 supervisor node로 전달합니다. Args: state (MainState): 현재 메시지 상태를 나타내는 객체입니다. Returns: Command: supervisor node로 이동하기 위한 명령을 반환합니다. """ result = _research_agent.invoke({"messages" : state["messages"]}) print(f" db result : {result}") return Command( update={'messages': [HumanMessage(content=result['messages'][-1].content, name='db_research')]}, goto='supervisor_node' ) 이런 간단한 create_react_agent를 이용한 agent를 pip 버전이 약간다른 서로다른 pc에서 실행을 하였습니다. 첫 번째 피시에서는 LLM이 대답을 정말잘하지만 두 번째 피시에서는 전혀 엉뚱한 답변을 하며 정답률이 0%에 가깝게 나옵니다. from langgraph.prebuilt import create_react_agent 이런 패키지 버전에 따라서 LLM의 추론 생각 능력 차이가 있나요? LLM과 vectordb, embedding 모델, 소스는 동일합니다. 피시 사양도 똑같고 langraph 패키지 버전차이만 존재합니다.
안녕하세요.. langgraph 에서 graph_builder를 이용하여 노드와 엣지를 추가한 후에 compile한 후에 생성된 구조를 이미지로 표현하는 부분에서 오류가 발생합니다. 혹시 이 오류가 왜 발생하는지, 어떻게 수정해야 하는지 알려주시면 좋겠습니다 from IPython.display import Image, display display(Image(graph.get_graph().draw_mermaid_png())) 이 부분을 실행하게 되면 다음과 같은 오류가 발생합니다. TimeoutError Traceback (most recent call last) File ~/Workspace/pythonprj/langgraphtutorial/.venv/lib/python3.12/site-packages/urllib3/connectionpool.py:534 , in HTTPConnectionPool._make_request (self, conn, method, url, body, headers, retries, timeout, chunked, response_conn, preload_content, decode_content, enforce_content_length) 533 try: --> 534 response = conn.getresponse() 535 except (BaseSSLError, OSError) as e: ....... ValueError: Failed to reach https://mermaid.ink/ API while trying to render your graph after 1 retries. 이미지를 생성하는데 다른 사이트로 요청을 하는 것 같은데..timeout 오류가 발생하네요..
안녕하세요.. 2.2 PDF 전처리 강의를 따라서 진행하고 있습니다. 동일한 openai 모델을 이용하고, pyzerox를 사용했는데, 강사님이 보여주시는 결과와는 다른 내용이 나와서, pyzerox 사용시 추가설정 부분이 빠졌는지 궁금하네요.. 제가 사용한 세법 pdf는 다음과 같이 표가 구성되어 있습니다. 이 테이블을 알려주신 pyzerox 패키지로 실행하고 나온 md 파일을 text로 변환했는데 다음과 같이 나옵니다. | 과세표준 | 세 율 | |------------------------------|------------------------------------------| | 1,400만원 이하 | 과세표준의 6번세트 | | 1,400만원 초과 | 84만 원 + (1,400만원을 초과하는 금액의 15번세트) | | 5,000만원 이하 | 624만 원 + (5,000만원을 초과하는 금액의 24번세트) | | 8,800만원 이하 | 1,536만원 + (8,800만원을 초과하는 금액의 35번세트) | | 8,800만원 초과 | 3,706만원 + (1,500만원을 초과하는 금액의 38번세트) | | 3,000만원 초과 | 9,406만원 + (3,000만원을 초과하는 금액의 40번세트) | | 5,000만원 초과 | 1,406만원 + (5,000만원을 초과하는 금액의 42번세트) | | 10,000만원 초과 | 3,406만원 + (10,000만원을 초과하는 금액의 45번세트) | 퍼센트가 번세트로 인식되어서 나오고, 각행도 두줄이 제대로 변환안되고 있는 상태이면서, 추출된 글도 틀립니다. 후반으로 갈 수록 테이블 값이 엄청나게 틀린데,. 이런 상태로는 원하는 RAG를 제대로 할 수 없을 것 같습니다. 이를 해결할 수 있는 방법을 자세히 알려주시면 좋겠습니다.
남박사님 강의 정말 잘 듣고 있습니다. 구글 serach 엔진 연결하는 부분에서 HTTP Request 노드에서 화면이 제가 보고 있는 것과 조금 다른 것 같습니다. 아래처럼 Using Field Below를 선택하면 parameter 이름과 value 칸만 나오고 있습니다. q 값을 비워두긴 하는데 제대로 동작을 안하더라고요
최근 안내해주신 수강생 이벤트 관련 문의입니다. 안녕하세요, 강사님. 📌 AI에이전트 강의 수강생 특별 혜택 이미 AI에이전트 강의를 수강 중이신가요? GraphRAG 강의 구매 시 <RAG 입문> 70% 할인쿠폰을 드립니다! 이라고 이벤트 안내 주셨는데요. 1. 여기서 언급하신 GraphRAG 강의는 "graphRAG - Neo4J로 구현하는 지식 그래프 기반 RAG 시스템 (feat. LangChain)"(정가 143,000원) 이 맞나요? 2. 또한 여기서 언급하신 <RAG 입문> 70% 할인쿠폰은 RAG 마스터: 기초부터 고급기법까지 (feat. LangChain)(정가 121,000원) 이 맞나요? 확인 후 추가로 수강신청 하려고 합니다. 답변 부탁드립니다. 감사합니다.
graph_builder.add_edge('get_tax_base_equation', 'calculate_tax_base') graph_builder.add_edge('get_tax_deduction', 'calculate_tax_base') graph_builder.add_edge('get_market_ratio', 'calculate_tax_base') 2.7 병렬 처리를 통한 효율 개선 (feat. 프롬프트 엔지니어링).ipynb 에서 질문 있습니다. 3개가 병렬로 실행된다면 분명 먼저 끝나는 노드가 있을 거고 그러면 완료 노드 순서에 맞게 calculate_tax_base를 실행해야 하지만 결과를 보면 calculate_tax_base를 한번만 실행하더라고요. 그러면 어떠한 조작 없이도 ranggraph에서 add_edge를 사용한 노드라면 자동으로 병렬 처리 완료 상태를 보관하고 3개가 전부 종료 된 후 실행된다고 이해했는데 맞을 까요? 제가 이해한게 맞다면 add_edge를 사용하지 않은 노드(Comand 명령어 사용한 노드)들의 병렬 처리에서 스레드 동기화 처리가 자동으로 안되기 때문에 반드시 add_edge를 반드시 사용해야하나요? 이런 질문을 드리는 이유는 Command를 병렬로 처리해보고 있는데 궁금증이 생겨서 그렇습니다.! messages = [ {"role": "system", "content": system_prompt}, ] + state["messages"] response = llm.with_structured_output(Routers).invoke(messages) datasources = [router['next'] for router in response['nexts']] print(datasources) # FINISH를 analyst_node로 변환 goto_nodes = [ "analyst_node" if ds == "FINISH" else ds for ds in datasources ] # 병렬 실행을 위해 전체 리스트 반환 return Command(goto=goto_nodes)