최근 안내해주신 수강생 이벤트 관련 문의입니다. 안녕하세요, 강사님. 📌 AI에이전트 강의 수강생 특별 혜택 이미 AI에이전트 강의를 수강 중이신가요? GraphRAG 강의 구매 시 <RAG 입문> 70% 할인쿠폰을 드립니다! 이라고 이벤트 안내 주셨는데요. 1. 여기서 언급하신 GraphRAG 강의는 "graphRAG - Neo4J로 구현하는 지식 그래프 기반 RAG 시스템 (feat. LangChain)"(정가 143,000원) 이 맞나요? 2. 또한 여기서 언급하신 <RAG 입문> 70% 할인쿠폰은 RAG 마스터: 기초부터 고급기법까지 (feat. LangChain)(정가 121,000원) 이 맞나요? 확인 후 추가로 수강신청 하려고 합니다. 답변 부탁드립니다. 감사합니다.
아래 코드에서 계속해서 테스트 오류가 뜹니다.. 이유가 무엇일까요? 오히려 isequalto 를 사용했을때 테스트가 성공해버려요 @Test void Clock() { Clock clock = Clock.systemDefaultZone(); LocalDateTime dt1 = LocalDateTime.now(clock); LocalDateTime dt2 = LocalDateTime.now(clock); Assertions.assertThat(dt2).isAfter(dt1); } // 오류 메세지 java.lang.AssertionError: Expecting actual: 2025-05-09T16:54:49.066025800 (java.time.LocalDateTime) to be strictly after: 2025-05-09T16:54:49.066025800 (java.time.LocalDateTime) when comparing values using 'ChronoLocalDateTime.timeLineOrder()'
위와 같이 로그가 찍혔으면, DLQ에서 ack 상태가 되어야하는것 아닐까요? @RabbitListener(queues = RabbitMQConfig.DLQ) public void process(String message) { System.out.println("DLQ Message Received: " + message); try { String fixMessage = "success"; rabbitTemplate.convertAndSend( RabbitMQConfig.ORDER_EXCHANGE, "order.completed.shipping", fixMessage ); System.out.println("DLQ Message Sent: " + fixMessage); } catch (Exception e) { System.err.println("### [DLQ Consumer Error] " + e.getMessage()); } } 위의 코드인 경우 AUTO 모드로 동작해서 자동으로 DLQ에서 처리가 되면 ACK 을 받을 것이라 생각했는데, DLQ에서 unack 상태로 남아있어서 여쭤봅니다! 이후에 애플리케이션을 종료하면 DLQ에서는 다시 ready 상태가 되고, 애플리케이션을 실행하면 이를 실행하고 와 같이 로그가 찍힌 다음에 다시 unack 상태가 됩니다. 좋은 강의 감사드립니다 :)
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세 위와 같이 실행했는데 baseline roc_auc가 높게 나옵니다 그리고 y_test 실행결과 label과 점수가 비슷합니다. 어떤 이유일때문일까요?
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)
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 4:47초에서 iterator.next()가 '현재 데이터를 반환하고 다음으로 이동'한다고 하셨고, 그것이 '다음 데이터를 반환한다' 라는 말씀이라 하셨습니다. 제가 이해가 잘 안되는데, 현재 데이터를 반환하고 다음으로 이동하는 것은 리턴값이 현재 값 이라는 것일테고 다음 데이터를 반환하는 것은 리턴값이 다음 데이터라는 말일텐데, 혹시 어느 것이 맞을까요 ..?
3.7 찐 Multi-Agent System (feat. create_react_agent) 에 구현하신 def supervisor_node안에 messages = [ {"role": "system", "content": system_prompt}, ] + state["messages"] 해당 소스 Message에 system을 이렇게 선언하는게 맞는지 이해가 가질 않습니다. 선생님 설명에서는 analyst_node안에 invoke할 때 supervisor_node안에 넣었던 systemprompt는 불필요해서 아래 소스처럼 result = analyst_chain.invoke({'messages': state['messages'][1:]}) [1:]를 하신다고 설명하셨는데 analyst_node 안에서 state['messages']를 print함수로 확인해 봤더니 systemmessage가 들어있지 않았습니다. messagestatas에 messages에 system메세지를 추가하기 위해서 고민하다 systemMessage를 넣었더니 선생님 설명대로 됐지만 무슨 차이인지 잘 모르겠습니다. 아마 예상하기에는 MessageState가 SystemMessage, AIMessage, HumanMessage 밖에 허용을 안 하는 것 같은데 맞나요? 어떤게 올바른 방법인가요? messages = [ SystemMessage(content=system_prompt), ] + state["messages"]
강의를 보면서 강사님과 똑같이 진행을 하는데 값이 다릅니다. 그리고 영상에서는 max_depth를 설정했을 때가 설정하지 않았을 때 보다 값이 더 올라갔는데 저 같은 경우는 설정한 후 값이 더 내려갔습니다. 정상적인 건가요? #rf from sklearn.ensemble import RandomForestClassifier from sklearn.metrics import roc_auc_score, f1_score, accuracy_score rf = RandomForestClassifier(random_state=2025,max_depth=3) rf.fit(X_tr,y_tr) pred = rf.predict(X_val) pred_proba = rf.predict_proba(X_val) print(roc_auc_score(y_val,pred_proba[:,1])) print(f1_score(y_val,pred)) print(accuracy_score(y_val,pred)) # 0.9227272727272727 # 0.8571428571428571 # 0.8378378378378378 # max_depth = 3 # 0.9242424242424243 # 0.8 # 0.7837837837837838
<모델&평가>에서 fit(학습)을 시킬때는 왜 X_tr,y_tr을 넣고 예측을 할때는 왜 X_val를 넣나요 ? 그냥 아무거나 넣어도 되나요 ? #rf from sklearn.ensemble import RandomForestClassifier rf = RandomForestClassifier(random_state=2025) rf.fit(X_tr,y_tr) pred = rf.predict(X_val)
<데이터 전처리 &피처엔지니어링>에서 왜 id를 drop 하나요? 그리고 <검증 데이터 분리>에서 는 왜 output을 drop 하나요? train = train.drop('id',axis=1) test_id = test.pop('id') test.head() from sklearn.model_selection import train_test_split X_tr, X_val, y_tr, y_val = train_test_split(train.drop('output',axis=1),train['output'],test_size=0.15, random_state=2025)