[질문 내용] (05:30 참고) privateValue, defaultValue는 접근제어자에 의해 Child에서 접근이 불가능한 것까진 알겠습니다. 두 멤버도 상속이 되긴 하는건가요? 그리고 Child가 Parent를 상속하는 것으로 설정하면, Child 인스턴스를 생성했을 때 내부에 printValue, defaultValue 두 멤버가 생기긴 하는데 접근을 못 하는건가요, 아니면 애초에 두 멤버는 인스턴스 안에 안 생기는건가요?
안녕하세요! langraph를 업무에 사용예정이여서 강의 수강중입니다. 윈도우 환경셋팅이 필요해서 다음 에러를 해결해서 개발환경 셋팅을 완료했습니다. 앞으로 강의를 수강하는데 다음 uvloop 패키지가 없어도 괜찮을까요? chroma-hnswlib 도 무시하고 설치로 해도 괜찮은지 궁금합니다. 가능하다면 윈도우 환경에서의 패키지 모듈 관리도 되면 좋을 것 같습니다 🙂 uvloop window 환경에서는 무시하고 설치하도록 변경 'uvloop; sys_platform != "win32"', # ⬅ Windows에서는 설치 안 함 chroma-hnswlib Visual C++ Build Tools 설치
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] (05:30부터) publicValue와 protectedValue에는 어떻게 접근한건가요? : publicValue, protectedValue는 타 클래스인 Parent의 멤버변수이고, 그것에 접근하려면 Parent의 인스턴스를 생성한 다음(인스턴스 변수는 'p'라 하겠습니다) 'p.'을 앞에 적어야 접근이 가능한 것 아닌가요? 즉 저는 p.publicValue같은 식으로 불러야 하는 것으로 알고있는데, 여기서는 어떻게 'p.'없이 접근을 한건지 궁금합니다 ㅠ
from langchain_core.prompts import ChatPromptTemplate from pydantic import BaseModel, Field from typing import Literal class Route(BaseModel): target: Literal["income_tax", "llm", "real_estate_tax"] = Field( description="The target for the query to answer" ) router_system_prompt = """ You are an expert at routing a user's question to 'income_tax', 'llm', or 'real_estate_tax'. 'income_tax' contains information about income tax up to December 2024. 'real_estate_tax' contains information about real estate tax up to December 2024. if you think the question is not related to either 'income_tax' or 'real_estate_tax'; you can route it to 'llm'.""" router_prompt = ChatPromptTemplate.from_messages( [("system", router_system_prompt), ("user", "{query}")] ) structured_router_llm = small_llm.with_structured_output(Route) def router(state: AgentState) -> Literal["income_tax", "real_estate_tax", "llm"]: """ 주어진 state에서 쿼리를 기반으로 적절한 경로를 결정합니다. Args: state (AgentState): 현재 에이전트의 state를 나타내는 객체입니다. Returns: Literal['income_tax', 'real_estate_tax', 'llm']: 쿼리에 따라 선택된 경로를 반환합니다. """ query = state["query"] router_chain = router_prompt | structured_router_llm route = router_chain.invoke({"query": query}) return route.target 안녕하세요 강병진 강사님:) 혹시 위 코드에서 router_prompt없이 Route class의 Field에만 프롬프트 지침을 넣어도 문제가 없을까요? 테스트 결과는 잘 나왔습니다. 아래는 수정 코드입니다. class Route(BaseModel): target: Literal["real_estate_tax", "llm", "income_tax"] = Field(description = """ 당신은 사용자의 질문을 보고 적절한 라우터를 연결해주는 전문가입니다. 부동산에 관련된 질문은 real_estate_tax라우터를, 소득세에 관한 질문은 income_tax라우터를, 그 외의 질문은 llm라우터로 연결해주세요. """) def router(state: AgentState): query = "역삼역 떡볶이 맛집을 알려주세요 " router_llm = llm.with_structured_output(Route) response = router_llm.invoke(query) return response.target print(router({})) >> 'llm'
MCP Server 나 langgraph 나 모두 tool 입니다. 만약 tool 에서 결과 값이 너무 많이 나오는 경우 어떻게 처리 해야 할까요? 예1) MCP Server의 "우리 회사 고객 정보중 매출 얼마 이상 되는 정보를 보여줘?" 라고 고객이 입력 했는데, 그 고객 정보가 10만명이 나와서 tool 의 결과가 너무 커 버리는 예) DB의 Limit 등으로 어떻게 하더라도 다음 호출을 LLM이 잘 못해주는 경우가 있음. 예2) 슬랙의 채널을 보여줘 했을 때, 슬랙의 채널이 너무 많은 경우 ... 결국 전부다 예3) 소스코드를 분석해 줘 소스코드가 1만 - 2만 라인 되었을 경우 Tool 의 결과라도 양이 많으면 Summary를 하면서 계속 돌려야 하는게 효과 적일까요? 아니면 페이지 1, 2 등을 호출할 수 있게 어떻게 하던 LLM 에게 권한을 주는게 효과 적일까요? 더 괜찮은 방법이나 좋은 prompt 등이 있으시면 답변 부탁 드립니다. 감사합니다.
안녕하세요 좋은 수업제공해주셔서 많은 도움을 받고있습니다. langChain에 public 모델을 사용할때 개인정보 관련해서 질문이 있는데요 예를 들어 챗봇이나 자동 상담 기능에 적용을 한다고하면 입력이 매우 자유로울거같은데 개인정보에대해서는 어떻게 처리를 해야할까요? 기본적으로는 정규식으로 전처리를 하는데 100%보장된 작업은 아니라 현업에서는 어떻게 처리하는지 궁금합니다. 만약 개인정보 처리가 매우 중요하다면 public 모델(ex. chatGPT, gemini)은 사용 못하고 private 한 환경에 오픈소스로 운영할수밖에는 없을까요?
안녕하세요 파이썬 활용한 데이터 전처리 부분에서 14.1 파이썬을 활용한 데이터 전처리.ipynb 위 코드를 가져와서 진행하는 과정에서 아래와 같은 에러가 발생했습니다. UnicodeEncodeError : 'cp949' codec can't encode character '\u2219' in position 1119: illegal multibyte sequence 이것저것 파이썬 기본 인코디을 utf-8로 바꾸라고 해서 set PYTHONUTF8=1 해당 코드도 사용해 봤는데 결국에는 아래와 같은 에러가 발생해서 질문드리게 되었습니다. TypeError : 'NoneType' object is not iterable 혹시 어떻게 해야할까요? (윈도우 사용중입니다)
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 질문은 아니고.. 생산자 소비자 문제 파트 공부하다가 정말 감사해서 글 남깁니다. 이해를 위한 그림이 지금 세기도 힘들 정도로 많이 들어가있는데.. 학습자를 배려해주시는 마음이 느껴져서 정말 감사하네요.. 얼마나 많은 시간과 노력이 들어가있는지 가늠도 안됩니다. 정말 덕분에 편하게 공부하고 있습니다. 항상 감사드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 이전의 프린트 예제에서는 큐를 생성할 때 ConcurreentLinkedQueue를 사용했고, 생산자 소비자 문제에서는 ArrayDeque를 사용했는데, ConcurreentLinkedQueue를 쓰지 않아도 괜찮은건가요? 이 예제는 lock을 획득한 스레드만 접근 가능해서 동시성문제를 해결한 상황이라서 그런건가요?
Actuator, 프로메테우스, Grafana를 통해 운영 서버 모니터링 대시보드를 구축하려고 합니다. (CloudWatch는 일정 용량 이후 비용이 부과되는 문제로 Prometheus를 선택했습니다.) 근데 운영 서버에서 Actuator와 프로메테우스 서버를 띄우면 외부에서도 Actuator 가 제공하는 메트릭 정보뿐만 아니라, 프로메테우스가 수집한 정보를 9090 포트 번호를 통해 접근 가능하다고 생각하였습니다. 처음에는 Actuator의 정보를 ADMIN 권한을 가진 관리자만 접근 가능하도록 설정하였지만, Prometheus 서버에서 접근이 불가능한 문제가 생겼습니다. Prometheus와 Grafana를 통해 모니터링을 구축할 때, 데이터에 대한 보안을 강화할 수 있는 방법이 뭐가 있는지 궁금합니다.
안녕하세요 토비님 어플리케이션 계층의 port는 도메인과 외부의 연결을 위해 필요 하다고 알고 있는데 jpa나 마이바티스 같은 기술 또한 도메인 외부의 내용이기에 인프라 계층으로 들어간다고 알고 있습니다 그런데 의존성 역전을 위한 레파지토리 인터페이스를 어플리케이션 계층에 만들면 어플리케이션 서비스에서 도메인에 관련된 내용을 너무 깊게 관여하는 것 같아서 질문 드립니다 어플리케이션과 도메인의 경계를 어디까지로 보는게 좋을까요
안녕하세요 8강 강의에서 멀티모듈 구조 만드실때 각 서비스에 디렉토리를 추가하는 과정에서 new -> directory 클릭했을 때 강사님은 경로명 입력하는 칸 밑에 gradle source sets가 떠서 쉽게 src와 test디렉토리 등을 추가하셨는데 저는 뜨지 않습니다.. 왜 그런걸까요??
n8n을 도커로 서버에 올려 사용중인데요, (서버의 스펙은 4코어 16기가) 조금만 무거운 작업을 하면 Node.js( 단일 이벤트 루프 )의 문제인지 서버가 블로킹이 되어 작업이 완료될때까지 서버가 멈추는 현상이 있습니다. 멈추는 사이에는 별도의 쓰레드로 요청을 보내도 응답을 주지 않습니다. 제가 했던 워크플로는 10메가정도의 zip파일 1개를 ftp에서 다운로드 후 압축해제 하여 압축해제된 json파일을 하나로 합치는 작업입니다. 이정도의 작업으로 n8n서버가 멈추는(블로킹) 현상이 일반적인가요? 답변부탁드립니다. 감사합니다.
class Controller, class Service, Interface Repository, class RepositoryImpl, Interface JpaRepository의 그림에서 Interface Repository 가 Persistence 가 아닌 Business 계층으로 분리하신 이유가 궁금합니다!