문제 / 오류 / 질문에 대해 설명해 주세요 오류 메시지가 있다면 작성해 주세요 사용 중인 워크플로우를 공유해 주세요 n8n 설치 정보 안내 n8n 버전: 데이터베이스 종류 (기본값: SQLite): n8n 실행 프로세스 설정 (기본값: own, main): n8n 실행 방식 (예: Docker, npm, n8n cloud, 데스크탑 앱 등): railway 운영 체제: 안녕하세요! 강의 잘보고 있습니다. 셀프호스팅에서 도커는 PC 사용에 부담을 느껴 paas 프로그램중 레일웨이를 사용하였는데요. 이렇게해서 오픈하니까.. 아예 실행이 안되더라구요 ㅜㅜ 제가 아예 개발을 모르는 사람이다 보니 아예 이유를 찾기가 어려워 여쭤봅니다. 강의를 보고 아래 영상을 참고 했습니다 : https://www.youtube.com/watch?v=DhuaKAW819s&t=41s 17:26초 쯤 있습니다!
아래 2개 구현이 n8n 으로 가능한지 궁금합니다. 1/ 미팅 녹화본의 요약 & 액션 아이템을 정리해 주고, 그 내용 바탕으로 자동으로 원하는 형식의 1) 이메일을 써주거나 2) 회사 노션 3) 슬랙의 원하는 부분에 기재되게 하는 것 2/ 미팅 녹화본의 스크립트 기반으로 적절한 블로그 글 주제 선정 및 (평소 쓰던 톤을 바탕으로) 글 작성해주고, 개인 네이버 블로그에 자동 작성되게 하는 것 목표를 잡고 강의를 들으면 더 효능감이 있을 것 같아서 질문드려요!
안녕하십니까 선생님 강의 잘 듣고있습니다. 만약 create_react_agent에 tool이 vectordb retriever를 수행 할 때 retriever의 문서의 내용이 너무 많은 context를 가지고 있다면 llm이 리트리버한 결과를 바탕으로 질문에 대한 답변을 하지 않고 리트리버 문서를 요약해서 답변으로 출력합니다. 왜 그런건지 궁금합니다. from langgraph.prebuilt import create_react_agent @tool def retriever_tool(query: str)->List[Document]: """ 이 도구는 HR 데이터베이스에서 정보를 검색합니다. """ return retriever.invoke(query) tools = [retriever_tool] research_agent = create_react_agent( model = llm, tools = tools, prompt=(""), )
안녕하세요. 외부 셀프호스팅 방법 (Render, Railway etc)으로 소개해 주신 부분에 대해 질문드립니다. N8N공식 서비스를 사용하면 호스팅에 대한 지식이 전혀 없어도 간편히 사용할수 있잖아요. 그럼에도 외부 셀프호스팅 방법을 제안주신 이유는 어떤 필요에 의해서 일것 같은데 그 부분으로 짐작되는 것이 1.커뮤니티에 있는 비공식 노드들을 사용할수 있고 2.개인 로컬은 상시 ON상태를 유지하기 어렵고 3.셀프호스팅 방법에서보니.. 클릭으로 N8N환경을 자동으로 세팅해 간편해 보이기도 하고.. 이런 것이 맞을까요 ? 또는 제가 모르는 다른 필요가 있을까요 ?
안녕하세요 현재 유료 결제나 외부로 API를 연동하는 것이 사내 보안 규정 상 어려운 상황입니다. 강의에 나온 대로 langchain-core 라이브러리를 활용하는 경우 core 내부에 langsmith를 쓰는 import 가 있어 langsmith를 반드시 사용 해야하는 상황입니다. langsmith가 유료로 변경되면 API 키가 필요한 상황이라 현재 사내에서는 사용이 어려울 것 같습니다. 이런 경우 langsmith를 사용하지 않고 유사하게 기능을 구현하는 방법이 있는지 궁금합니다.
안녕하세요 강의 잘 보고있습니다. 에이전트 구현 관련해서 강의 외적으로 몇가지 질문드립니다. 에이전트를 리눅스 호스트에서 구동하며 ShellTool, PlayWright 등을 활용해서 원래 사람이 직접 리눅스와 소통하며 수행해야 했을 동작들을 에이전트로 대체하고자 합니다. 이와 관련된 좋은 Practice Example이 있을까요? 에이전트를 여러 시나리오에 대응할 수 있도록 여러 Sub StateGraph로 나누어 작업한 후에 이들을 하나의 에이전트로 합치는 구조를 생각하고 있습니다. 혹시 이렇게 될 경우 State가 Subgraph 마다 다른 것과, 메모리 등에 대해서 정확한 그림이 그려지지 않는데 이를 해결하기 위해 혹시 효과적인 설명이나 예시가 있을까요?
Upstage를 사용해도, exceeded 되었다고 에러나서요. 뭔가 최근에 토큰 제한이 줄었나봐요. 아래와 같이 batch를 주어서 반복문으로 요청후 database.add_documents(batch)하는 방식으로 해야되네요 ㅠㅠ from langchain_pinecone import PineconeVectorStore # 데이터를 처음 저장할 때 index_name = 'tax-upstage-index' # Split documents into smaller chunks text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=100) chunked_documents = text_splitter.split_documents(document_list) print(f"Chunked documents length: {len(chunked_documents)}") # Initialize the PineconeVectorStore database = PineconeVectorStore.from_documents( documents=[], # Start with an empty list embedding=embedding, index_name=index_name ) # Upload documents in batches batch_size = 100 for i in range(0, len(chunked_documents), batch_size): print(f'index: {i}, batch size: {batch_size}') batch = chunked_documents[i:i + batch_size] database.add_documents(batch) # Add documents to the existing database
from langchain_core.messages import HumanMessage from langgraph.prebuilt import create_react_agent from langchain_mcp_adapters.client import MultiServerMCPClient async with MultiServerMCPClient( { "house_tax": { "command": "python", "args": ["./mcp_stdio_server.py"], "transport": "stdio", }, } ) as client: ##### AGENT ##### tool_list = client.get_tools() agent = create_react_agent(llm, tool_list) query = '5억짜리 집 1채, 10억짜리 집 1채, 20억짜리 집 1채를 가지고 있을 때 세금을 얼마나 내나요?' system_prompt = client.get_prompt(server_name="house_tax", prompt_name="house_tax_system_prompt", arguments={}) messages = await system_prompt + [HumanMessage(content=query)] print("=====RESPONSE=====") stream_generator = agent.astream({'messages': messages}) all_chunks = await process_stream(stream_generator) if all_chunks: final_result = all_chunks[-1] print("\nFinal result:", final_result) 안녕하세요, mcp 쪽 공부하다가 궁금한 점이 생겨서 질문드립니다. MultiServerMCPClient를 이용해서 react_agent를 생성하면, query에 적합한 tool들을 알아서 선별해서 query가 요청하는 태스크를 실행해주는 방식이란 점은 잘 이해가 됩니다. 하지만, 어떤 방식으로 tool들의 메타 정보(description, 필수 argument 정보)등을 가져오고 인식하는 지 공식 문서로 정리된 점이 있나요? 강의 자료에서는 local python 파일을 이용해서 tool을 등록했지만, 아래의 방식처럼 smithery를 통해 tool을 등록하는 방법도 있는 것으로 알고 있습니다. 이렇게 tool을 등록하는 방식이 다양한데 MultiServerMCPClient가 어떤 식으로 tool들의 정보와 사용법에 대한 정보를 얻어서, 태스크에 적절한 tool들을 할당할 수 있는 지에 대해 여쭤보고 싶습니다 "Gmail": { "transport": "sse", "enabled": True, "command": "npx", "args": [ "-y", "supergateway", "--sse", "https://" ], https://github.com/langchain-ai/langchain-mcp-adapters/tree/main 에서 MultiServerMCPClient 코드들을 조회해봤을 때 get_prompt나 get_resources가 있는 것으로 보아 분명 '어떠한 방식'으로 등록하려는 도구들에 대한 메타 정보를 가져오는 것 같은데 그 '어떠한 방식'을 구체적으로 알고 싶습니다