from langchain_core.prompts import PromptTemplate from langchain_core.output_parsers import StrOutputParser dictionary = ['사람과 관련된 표현 -> 거주자'] rewrite_propmt = PromptTemplate.from_template(f"""사용자의 질문을 보고, 우리의 사전을 참고해서 사용자의 질문을 변경해주세요 사전:{dictionary} 질문: {{query}}""") def rewrite(state: AgentState)->AgentState: query = state['query'] rewrite_chain = rewrite_propmt | llm | StrOutputParser() response = rewrite_chain.invoke({'query': query}) return {'query' : response} # Create a LangSmith API in Settings > API Keys # Make sure API key env var is set: # import os; os.environ["LANGSMITH_API_KEY"] = "<your-api-key>" from langsmith import Client from typing import Literal client = Client() relevance_prompt = client.pull_prompt("langchain-ai/rag-document-relevance") def check_doc_relevance(state: AgentState)-> Literal['generateAnswer','rewrite']: query= state['query'] context= state['context'] relevance_chain = relevance_prompt | llm response = relevance_chain.invoke({'question':query, 'documents': context}) if response['Score'] ==1: return 'generateAnswer' return 'rewrite' graph_builer.add_node('retrieveDoc', retrieveDoc) graph_builer.add_node('generateAnswer', generateAnswer) graph_builer.add_node('rewrite', rewrite) from langgraph.graph import START, END graph_builer.add_edge(START,'retrieveDoc') graph_builer.add_conditional_edges('retrieveDoc', check_doc_relevance) graph_builer.add_edge('rewrite','retrieveDoc') graph_builer.add_edge('generateAnswer', END) graph =graph_builer.compile() from IPython.display import Image, display display(Image(graph.get_graph().draw_mermaid_png())) initial_State = {'query' : '연봉 5천만원 세금'} graph.invoke(initial_State) 강사님! 강의랑 똑같이 코드를 작성했는데도 'query: 연봉 5천만원 세금 ' 질문에 대한 답 score가 계속 1이 나와서 rewrite 노드로 이동하지 않습니다. 쿼리자체에 거주자나 사람을 나타내는 표현이 없는데도 문서에서 관련성을 키워드로 찾다보니 키워드가 있기만 해도 결과가 1이 나오네요ㅜㅜㅜ 강사님은 결과가 0이 나와 rewrite를 하고 제가 해볼때는 1이 나오는 이유가 무엇인지 모르겠습니다. {'query': '연봉 5천만원 세금', 'context': [Document(id='15f6746f-4e63-4775-a47e-c72298375620', metadata={'source': './tax_combined_final.txt'}, page_content='소득세법'), Document(id='a6c9015f-092f-4aa3-819b-e23588bb0a0f', metadata={'source': './tax_combined_final.txt'}, page_content='소득세법\n하는 자(제119조제9호에 따른 국내원천 부동산등양도소득을 지급하는 거주자 및 비거주자는 제외한다)는 제127조\n에도 불구하고 그 소득을 지급할 때에 다음 각 호의 금액을 그 비거주자의 국내원천소득에 대한 소득세로서 원천징\n수하여 그 원천징수한 날이 속하는 달의 다음 달 10일까지 대통령령으로 정하는 바에 따라 원천징수 관할 세무서,\n한국은행 또는 체신관서에 납부하여야 한다. <개정 2013. 1. 1., 2016. 12. 20., 2018. 12. 31., 2019. 12. 31., 2020. 12.\n29.>\n1. 제119조제1호에 따른 국내원천 이자소득: 다음 각 목의 구분에 따른 금액\n가. 국가·지방자치단체 및 내국법인이 발행하는 채권에서 발생하는 이자소득: 지급금액의 100분의 14\n나. 가목 외의 이자소득: 지급금액의 100분의 20\n2. 제119조제2호에 따른 국내원천 배당소득: 지급금액의 100분의 20\n3. 제119조제4호에 따른 국내원천 선박등임대소득 및 같은 조 제5호(조세조약에 따라 국내원천 사업소득으로 과세\n할 수 있는 소득은 제외한다)에 따른 국내원천 사업소득: 지급금액의 100분의 2\n4. 제119조제6호에 따른 국내원천 인적용역소득: 지급금액의 100분의 20. 다만, 국외에서 제공하는 인적용역 중대\n통령령으로 정하는 용역을 제공함으로써 발생하는 소득이 조세조약에 따라 국내에서 발생하는 것으로 보는 소득\n에 대해서는 그 지급금액의 100분의 3으로 한다.\n5. 제119조제9호에 따른 국내원천 부동산등양도소득: 지급금액의 100분의 10. 다만, 양도한 자산의 취득가액 및 양\n도비용이 확인되는 경우에는 그 지급금액의 100분의 10에 해당하는 금액과 그 자산의 양도차익의 100분의 20에\n해당하는 금액 중 적은 금액으로 한다.\n6. 제119조제10호에 따른 국내원천 사용료소득: 지급금액의 100분의 20\n7. 제119조제11호에 따른 국내원천 유가증권양도소득: 지급금액(제126조제6항에 해당하는 경우에는 같은 항의 정\n상가격을 말한다. 이하 이 호에서 같다)의 100분의 10. 다만, 제126조제1항제1호에 따라 해당 유가증권의 취득가\n액 및 양도비용이 확인되는 경우에는 그 지급금액의 100분의 10에 해당하는 금액과 같은 호에 따라 계산한 금액\n의 100분의 20에 해당하는 금액 중 적은 금액으로 한다.\n8. 제119조제12호에 따른 국내원천 기타소득: 다음 각 목의 구분에 따른 금액\n가. 제119조제12호카목의 소득: 지급금액의 100분의 15\n나. 제119조제12호타목의 소득: 다음의 구분에 따른 금액. 다만, 가상자산을 교환하거나 인출하는 경우에는 다음\n의 구분에 상당하는 금액으로서 가상자산 단위로 표시한 대통령령으로 정하는 금액으로 한다.\n1) 제126조제1항제3호에 따라 가상자산의 필요경비가 확인되는 경우: 지급금액의 100분의 10에 해당하는 금\n액과 같은 호에 따라 계산한 금액의 100분의 20에 해당하는 금액 중 적은 금액'), Document(id='5a211886-c6db-4fd5-9e77-a4375dd2ee6d', metadata={'source': './tax_combined_final.txt'}, page_content='5. 공적연금소득에 대해서는 기본세율\n5의2.제20조의3제1항제2호나목 및 다목에 따른 연금계좌 납입액이나 운용실적에 따라 증가된 금액을 연금수령한\n연금소득에 대해서는 다음 각 목의 구분에 따른 세율. 이 경우 각 목의 요건을 동시에 충족하는 때에는 낮은 세율\n을 적용한다.\n가. 연금소득자의 나이에 따른 다음의 세율\n|나이(연금수령일 현재)| 세율 |\n| ----------- | ----------- |\n| 70세 미만 | 100분의 5 |\n| 70세 이상 80세 미만 | 100분의 4 |\n| 80세 이상 | 100분의 3 |\n나. 삭제 <2014. 12. 23.>')], 'answer': AIMessage(content='연봉 5천만원에 대한 세금은 다양한 소득세 항목에 따라 달라질 수 있습니다. 일반적으로 소득세율은 소득금액에 따라 차등 적용되며, 기본 세율은 5%에서 시작합니다. 정확한 세금액을 계산하기 위해서는 총소득, 공제 항목 등을 고려해야 합니다.', additional_kwargs={'refusal': None}, response_metadata={'token_usage': {'completion_tokens': 78, 'prompt_tokens': 1352, 'total_tokens': 1430, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}, 'model_provider': 'openai', 'model_name': 'gpt-4o-mini-2024-07-18', 'system_fingerprint': 'fp_3683ee3deb', 'id': 'chatcmpl-D2psPuRb1GQcktIDJfUhfjTjYL2CO', 'service_tier': 'default', 'finish_reason': 'stop', 'logprobs': None}, id='lc_run--019c027f-916f-7c82-9b4a-00ba35551ea7-0', tool_calls=[], invalid_tool_calls=[], usage_metadata={'input_tokens': 1352, 'output_tokens': 78, 'total_tokens': 1430, 'input_token_details': {'audio': 0, 'cache_read': 0}, 'output_token_details': {'audio': 0, 'reasoning': 0}})} 도와주시면 감사하겠습니다.
보시는대로 네이버냐 구글이냐 가르는 스위치 노드 인풋까지는 정상적으로 들어옵니다. 강의대로 똑같이 했는데, 아웃풋이 안 나옵니다. 왜 이런걸까요? 참고로 구글로 테스트해보면 구글은 잘 됩니다. 더 참고로 말씀드리면 네이버 정크 메일 노드는 이전 노드 아웃풋이 없으니 당연히 이렇게 인풋이 없습니다.
안녕하세요, 강사님! 강의 잘 듣고 있습니다. RAG 및 LangChain을 공부하는 도중에 기존 리트리버 방식인(dense based)에 더 자세히 공부하기 위해 Hybrid Retriever(e.g. RRF, CC)등을 더 찾아보고 있는데 이부분은 강의에서 따로 안다뤄주는 부분일까요?? 또한 현업에서는 어떤 Retriving 방식을 선호하는지 또한 궁금합니다!
취업준비를 위해 react, next 강의를 듣기전에 프레임워크에 대한 깊은 이해를 위해 바닐라js로 spa + csr방식을 체득하기 위해 이 강의를 듣고 있습니다. spa + ssr방식 또한 react,next에서도 사용한다고 알고 있는데 현재 강의에서 spa + csr방식만 잘 체득하고 프레임워크에 대한 공부를 해도 충분할지 제대로 이해하려면 바닐라 js로 spa + ssr방식도 이해하고 직접 구현 해보면서 체득하고 넘어가야지 프레임워크에 대한 깊은 이해가 가능할지가 궁금합니다..
안녕하세요, 강의 잘 듣고 있습니다! 1강의 14. 힙과 스택의 비교 강의 중 궁금한 점이 생겨 문의 드렸습니다. 자바 스크립트는 컴파일 타임에 변수명을 저장하고, 런타임에 코드 순서대로 값을 할당한다고 알고 있습니다. 그렇다면 자바스크립트에서는 할당이 런타임에서 이루어지고 그에 따라 원시데이터의 크기도 런타임 시점에서 정해지는 것 아닌가요?
in & with 키워드에서 with 키워드는 vscode에서 에러가 나기도 하고 mdn에서도 지원중단 및 권장하지 않아 해당 부분은 확인후 수정이 필요해보입니다. 혹시 몰라 링크도 같이 첨부하겠습니다. https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Statements/with
filter안에 콜백 함수는 반드시 true/false를 리턴해야함 만약 콜백 함수를 {}중괄호를 사용하였는데 return을 안붙이면 undefined을 반환 undefined은 falsy한 값으로 판정하여 filter로 값을 담지 못하게됨 따라서 항상 빈배열 {}중괄호를 사용했다면 return을 명시 return을 사용 안 할 시 {}중괄호 제거 -> 자동return
OpenAI를 활용한 나만의 AI 에이전트 만들기 (Agent Builder, GPT-5, Chatkit, Cloudflare, MCP, Fine Tuning, CoT 등)
2026-01-24T18:01:27.860119Z Cloning repository... 2026-01-24T18:01:28.415748Z From https://github.com/ssmktr/openai-chatkit-starter-app 2026-01-24T18:01:28.416363Z * branch d8abdc1e7810bbe5fdb3c809e65c2b07141d1450 -> FETCH_HEAD 2026-01-24T18:01:28.41648Z 2026-01-24T18:01:28.451163Z HEAD is now at d8abdc1 Simplify ChatKit backend (#104) 2026-01-24T18:01:28.451626Z 2026-01-24T18:01:28.523349Z 2026-01-24T18:01:28.523863Z Using v2 root directory strategy 2026-01-24T18:01:28.544435Z Success: Finished cloning repository files 2026-01-24T18:01:30.338662Z Checking for configuration in a Wrangler configuration file (BETA) 2026-01-24T18:01:30.339458Z 2026-01-24T18:01:31.455516Z No wrangler.toml file found. Continuing. 2026-01-24T18:01:31.532601Z Detected the following tools from environment: nodejs@22.21.1 2026-01-24T18:01:31.533343Z Installing nodejs 22.21.1 2026-01-24T18:01:32.491348Z Trying to update node-build... ok 2026-01-24T18:01:32.581604Z To follow progress, use 'tail -f /tmp/node-build.20260124180132.491.log' or pass --verbose 2026-01-24T18:01:32.676902Z Downloading node-v22.21.1-linux-x64.tar.gz... 2026-01-24T18:01:32.916706Z -> https://nodejs.org/dist/v22.21.1/node-v22.21.1-linux-x64.tar.gz 2026-01-24T18:01:35.061658Z 2026-01-24T18:01:35.061984Z WARNING: node-v22.21.1-linux-x64 is in LTS Maintenance mode and nearing its end of life. 2026-01-24T18:01:35.062214Z It only receives critical security updates, critical bug fixes and documentation updates. 2026-01-24T18:01:35.0625Z 2026-01-24T18:01:35.062624Z Installing node-v22.21.1-linux-x64... 2026-01-24T18:01:35.494128Z Installed node-v22.21.1-linux-x64 to /opt/buildhome/.asdf/installs/nodejs/22.21.1 2026-01-24T18:01:35.49449Z 2026-01-24T18:01:36.434863Z Executing user command: npx @cloudflare/next-on-pages@1 2026-01-24T18:01:37.460162Z npm warn exec The following package was not found and will be installed: @cloudflare/next-on-pages@1.13.16 2026-01-24T18:01:49.78096Z npm warn deprecated path-match@1.2.4: This package is archived and no longer maintained. For support, visit https://github.com/expressjs/express/discussions 2026-01-24T18:01:50.799789Z npm warn deprecated tar@6.2.1: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exhorbitant rates) by contacting i@izs.me 2026-01-24T18:01:51.18784Z npm warn deprecated @cloudflare/next-on-pages@1.13.16: Please use the OpenNext adapter instead: https://opennext.js.org/cloudflare 2026-01-24T18:01:59.323249Z ⚡ ️ @cloudflare/next-on-pages CLI v.1.13.16 2026-01-24T18:01:59.510375Z ⚡ ️ Detected Package Manager: npm (10.9.4) 2026-01-24T18:01:59.510832Z ⚡ ️ Preparing project... 2026-01-24T18:01:59.513738Z ⚡ ️ Project is ready 2026-01-24T18:01:59.514039Z ⚡ ️ Building project... 2026-01-24T18:02:00.366087Z ▲ npm warn exec The following package was not found and will be installed: vercel@50.5.0 2026-01-24T18:02:05.898447Z ▲ npm warn deprecated tar@6.2.1: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exhorbitant rates) by contacting i@izs.me 2026-01-24T18:02:08.620603Z ▲ Vercel CLI 50.5.0 2026-01-24T18:02:08.625834Z ▲ > NOTE: The Vercel CLI now collects telemetry regarding usage of the CLI. 2026-01-24T18:02:08.626058Z ▲ > This information is used to shape the CLI roadmap and prioritize features. 2026-01-24T18:02:08.626552Z ▲ > You can learn more, including how to opt-out if you'd not like to participate in this program, by visiting the following URL: 2026-01-24T18:02:08.626709Z ▲ > https://vercel.com/docs/cli/about-telemetry 2026-01-24T18:02:08.713183Z ▲ WARN! Build not running on Vercel. System environment variables will not be available. 2026-01-24T18:02:08.844345Z ▲ Your application is being built using next build . If you need to define a different build step, please create a vercel-build script in your package.json (e.g. { "scripts": { "vercel-build": "npm run prepare && next build" } } ). 2026-01-24T18:02:08.847668Z ▲ Installing dependencies... 2026-01-24T18:02:09.443264Z ▲ up to date in 464ms 2026-01-24T18:02:09.460617Z ▲ Warning: Could not identify Next.js version, ensure it is defined as a project dependency. 2026-01-24T18:02:09.481655Z ▲ Error: No Next.js version detected. Make sure your package.json has "next" in either "dependencies" or "devDependencies". Also check your Root Directory setting matches the directory of your package.json file. 2026-01-24T18:02:09.554599Z 2026-01-24T18:02:09.554859Z ⚡ ️ The Vercel build npx vercel build ) command failed. For more details see the Vercel logs above. 2026-01-24T18:02:09.554978Z ⚡ ️ If you need help solving the issue, refer to the Vercel or Next.js documentation or their repositories. 2026-01-24T18:02:09.555101Z 2026-01-24T18:02:09.599906Z Failed: Error while executing user command. Exited with error code: 1 2026-01-24T18:02:09.609667Z Failed: build command exited with code: 1 2026-01-24T18:02:11.150853Z Failed: error occurred while running build command 빌드시 위에처럼 에러가 뜨면서 응용 프로그램 빌드 중 에서 멈추고 있습니다. 해결방법이 어떻게 될까요?
안녕하세요, 강의 잘 수강하고 있습니다 😃 40강에서 Naver 이메일의 text를 가져오려고 Email get many 노드에서 text content를 포함하니 무한 로딩에 걸립니다. content 크기 문젠가 싶어 limit을 1로 잡아도 그러네요. ↑text content 포함 시 ↑text content 미포함 시 text content와 html content에서 그런 문제가 발생하고 다른 값(header 등)을 선택하면 문제가 없습니다. 네이버 이메일 문제인지 싶어서 Gmail도 해보니 똑같네요. 원인을 알고 싶습니다ㅠ