sqlalchemy.exc.InvalidRequestError: When initializing mapper Mapper[ScheduleEntity(schedules)], expression 'CountryEntity' failed to locate a name ('CountryEntity'). If this is a class name, consider adding this relationship() to the <class 'src.models.schedule.ScheduleEntity'> class after both dependent classes have been defined. cities = relationship("src.models.city.CityEntity", back_populates="country", cascade="all, delete-orphan", lazy="joined") schedules = relationship("src.models.schedule.ScheduleEntity", back_populates="country", cascade="all, delete-orphan", lazy="joined") 이미 이렇게 다 해놨는데 말이죠...
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요 304로 뜨는 이유는 뭔가요??? 강사님 처럼 200이 떠야하는데 ㅠ 화면은 제대로 이동했습니다
안녕하세요! section3을 듣고나서 제 나름대로 langgraph를 만들고 이걸.. streamlit으로 구현을 해봤는데요. 이번 강의에서와 같이 chat-history를 checkpointer를 사용해서 연결하려고하면 Checkpointer requires one or more of the following 'configurable' keys: ['thread_id', 'checkpoint_ns', 'checkpoint_id'] 이런 오류 가 뜨고 있는 상태입니다. chat-gpt와 구글 서치를 통해 나름대로 아래와 같이 해보았지만(간략하게 서술하면 CustomMememorySaver라는 클라스를 통해 ['thread_id', 'checkpoint_ns', 'checkpoint_id'] 를 checkpointer에 넣는 것입니다.) 이 역시 제대로 동작하지 않습니다. system_message_template = SystemMessagePromptTemplate.from_template("You are a helpful assistant.") chat_prompt = ChatPromptTemplate.from_messages([system_message_template]) # 세션 키 생성 (세션 관리) def generate_session_key(): if 'session_key' not in st.session_state: st.session_state['session_key'] = str(uuid.uuid4()) return st.session_state['session_key'] # Checkpointer 설정 (세션 상태 관리) class CustomMemorySaver(MemorySaver): def __init__(self, session_key): super().__init__() self.session_key = session_key def get_checkpoints(self): # 필요한 체크포인트 정보 반환 return { "thread_id": self.session_key, # session_key를 thread_id로 사용 "checkpoint_ns": "default", # 기본 네임스페이스 "checkpoint_id": f"checkpoint_{self.session_key}" # 고유한 checkpoint_id } # 시스템 메시지와 메모리 체크포인터 설정 session_key = generate_session_key() checkpointer = CustomMemorySaver(session_key=session_key) # LangGraph만을 사용한 에이전트 생성 (tools는 빈 리스트로 설정) agent_executor = create_react_agent(llm, [], state_modifier=chat_prompt, checkpointer=checkpointer) 또, 예전 langchain 강의에서 알려주셨던 chat-with-history 코드를 활용하려는 시도도 해봤는데요. (가독성을 위해 프롬프트 내용이나 중간 중간 선언 내용은 지웠습니다.) 하지만 이거 같은 경우에는 langgraph를 사용하는 입장에서, rag-chain을 ai_response에 넣는 과정을 어떻게 처리해야될지 모르겠어서 중도포기한 상태입니다. ㅠㅠ;; store = {} def get_session_history(session_id: str) -> BaseChatMessageHistory: if session_id not in store: store[session_id] = ChatMessageHistory() return store[session_id] def get_rag_chain(): llm = get_llm() retriever = get_retriever() contextualize_q_system_prompt = ("생략") contextualize_q_prompt = "생략" history_aware_retriever = create_history_aware_retriever( llm, retriever, contextualize_q_prompt ) system_prompt = ("생략") qa_prompt = ChatPromptTemplate.from_messages("생략") question_answer_chain = create_stuff_documents_chain(llm, qa_prompt) rag_chain = create_retrieval_chain(history_aware_retriever, question_answer_chain) conversational_rag_chain = RunnableWithMessageHistory( "생략" history_messages_key="chat_history", output_messages_key="answer", ).pick('answer') return conversational_rag_chain def get_ai_response(user_message): rag_chain = get_rag_chain() loan_chain ={"input": dictionary_chain} | rag_chain ai_message = loan_chain.stream( { "question": user_message }, config={ "configurable": {"session_id": "abc123"} }, ) return ai_message 결론적으로 말하면 langgraph로 어떻게해야 langchain에서 했던것처럼 streamlit상에서 구현할 수 있을지 궁금합니다! 질문 읽어주셔서 감사합니다!
재고관리에 카프카 쓴 이유가 궁금합니다. 제가 이해한 내용으로는 현재 order와 catalog는 다른 포트를 사용 중이고 같은 DB를 사용 중인걸로 알고있습니다. 그래서 카프카말고 @FeignClient로 재고관리에 업데이트 해주는 방식이 있는 거 같은데 이 상황에서 카프카를 쓴 이유가 있나요?
안녕하세요! 비동기 코드에 관해 질문이 있습니다. ExecutorService 는 스레드를 관리하는 역할을 하는것이고 CompletableFuture 가 실제로는 비동기 요청을 처리하는 것으로 이해하였는데 맞을까요? Future 은 예외 처리를 할 수 없기 때문에 잘 쓰이기 않을까요??CompletableFuture 가 지원하는 기능이 더 많기 때문에 주로 CompletableFuture 를 사용하나요?
감자님 안녕하세요! https://www.inflearn.com/community/questions/1535537/%EC%9C%A0%EB%8B%88%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D%EA%B3%BC-%EB%A9%80%ED%8B%B0%ED%94%84%EB%A1%9C%EC%84%B8%EC%8B%B1%EC%9D%B4-%EC%96%B4%EB%96%BB%EA%B2%8C-%EA%B3%B5%EC%A1%B4%ED%95%A0-%EC%88%98-%EC%9E%88%EB%8A%94-%EA%B1%B4%EA%B0%80%EC%9A%94 위 질문의 답변과 1. 현대 운영체제는 멀티프로그래밍, 멀티프로세싱 모두를 이용하시 때문에 멀티프로그래밍과 멀티프로세싱이 같다고 생각하신 것 같습니다. 하지만 유니프로그래밍과 멀티프로세싱도 같이 쓰일 수 있습니다. 예전에는 메모리의 크기가 작았기 때문에 메모리에 하나의 프로세스가 올라왔고 CPU가 이를 처리하다가 보조 저장장치에 저장된 프로세스와 스왑해서 메모리에 올려 다른 프로세스를 처리하는 방식으로 멀티 프로세싱했습니다. 이런 이유로 유니 프로그래밍과 멀티 프로그래밍을 메모리 관점으로 바라보는 것이고, 멀티 프로세싱은 CPU 관점으로 바라본다고 한 것입니다. 오늘날에는 해당 방식이 사용되지 않아서 거의 멀티프로그램=멀티프로세싱으로 보이긴 하지만 차이점은 알아두시면 좋을 것 같습니다! CS 스터디 질문답변에 과거 남겨주신 답변을 보고 헷갈리는 점이 생겨 질문드립니다. 오늘 업데이트되기 이전의 영상 [Section2의 멀티 프로그래밍과 멀티프로세싱]에서 설명해주신 멀티 프로세싱의 개념이 멀티 태스킹임을 이해하였습니다. 그렇다면, 이전에 설명해주신 메모리와 CPU의 관점에서 차이를 이해하는 것도 멀티 프로그래밍과 멀티 태스킹인 것일까요?? 즉, 멀티 프로그래밍 이 메모리 관점 에서 메모리에 여러 개의 프로세스를 올릴 수 있는 것이고, 멀티 태스킹 이 CPU의 관점 에서 하나의 CPU가 여러 개의 프로세스를 처리할 수 있다. 로 이해하면 되는 것인가요?? 디스코드에 남겨주신 답변이 잘못된 것인지 헷갈려서 질문드립니다!
eas와 notification 설정 후에는 로그인 시에 android emulator 상에서 코딩해주신 대로 '실제기기를 사용해주세요' 문구가 나옵니다. ios 는 개발자모드 설정을 구매해야 한다고 해서 기기는 안드로이드로 진행하려고 하는데 android 기기가 따로 없고 emulator 로는 실행이 안되는 걸까요? expopushToken만 보내고 로그인이 되지는 않습니다.
해당 강의의 1:39 초에 ORDER BY sal ROWS UNBOUNDED PRECEDING을 추가적으로 넣어주셨는데 avg의 결과값이 이해가 안돼서 질문드리게 되었습니다. avg를 계산할 때도 rows unbounded preceding이 적용되었으니 [CLERK] 파티션에서는 - SMITH : 800 - ADAMS : (800+950) /2 = 875 이런식으로 계산이 되어야 하는건 아닌지 궁금합니다. 하단 테이블에 실제 계산된 값을 보니, [CLERK] 파티션의 AVG 값은 (800 + 950 + 1100+ 1300) / 4 = 1,037.5 값을 출력한 것으로 보이는데 이유가 궁금합니다!
안녕하세요 선생님, 질문이 있어서 남깁니다. 만약 book/4를 URL로 요청하면 과정이 URL로 book/4 요청 시 Link 등이 없으므로 프리페칭은 안됨 - 서버에서 JS 실행 (렌더링) - 렌더링 된 HTML 브라우저에 넘김 - 브라우저에서 화면에 렌더링 - 서버에서 JSBundel, RSC payload 브라우저에 넘김 - 수화과정 - 상호작용 가능 이게 맞나요? book/1~3은 staticPage로 풀라우트캐시되어있으니 URL로 요청하면 풀라우트캐시에서 바로 HIT해서 주는거고요?
안녕하세요 강사님. 강의 잘 듣고 있습니다. 정말 도움이 많이 됩니다. 저 처럼 늦은 나이에 시작하는 사람한테는 큰 힘이 됩니다. 질문내용은 File Manage #11 - Custom Activity Item 강의를 수강하고, 실습을 하던중에 잘 되지않는 사항이 있어 질문 드립니다. 이미지의 공유버튼을 누르면 작은 아이콘이 이미지파일명과 같이 뜨는데, 저는 작은 아이콘이 뜨지를 않습니다 뭔가를 잘못한거 같은데요.. 바쁘시더라도 한번 봐주셔서 답변 부탁드립니다. 감사합니다.
안녕하세요, 강의 잘 듣고 있습니다. ^^ 분산 시스템에서 균등 샤딩 부분을 듣다가 궁금한 점이 생겨서 질문드립니다. 각 서버는 자신의 @Scheduled에 의해 레디스 서버로 조회하여 자신의 인덱스를 찾은 후 이를 기반으로 각자 서버 로컬에서 샤딩 범위를 계산하는 것으로 이해했는데요. 여기서 궁금한 점은 각 서버마다 @Scheduled가 동작하는 시점도 다를테고, 레디스의 저장된 서버 리스트가 동적으로 변하기도 하는데, 이러한 이유로 서로 다른 서버가 부분적으로 겹치는 샤딩 범위를 각자 계산하여 카프카로 중복 전송하는 시나리오가 발생하지는 않는 것인가요? ex) A의 @Scheduled 동작 시점에서는 서버가 3개 뿐이었지만 B의 @ Scheduled 동작 시점에는 서버가 5개로 늘어난 경우 서버 A가 계산한 자신의 샤딩 범위 0~20 서버 B가 계산한 자신의 샤딩 범위 13 ~ 27 답변 주시면 감사하겠습니다. 😊