(현) GS 그룹 LLMOps 플랫폼 개발/운영
(현) GS 그룹 DX BootCamp 교육 담당
(전) 시리즈 C 인공지능 스타트업 테크리드
네이버 부스트캠프 웹/모바일 멘토
네이버 클라우드 YouTube Channel presenter
원티드 프리온보딩 프론트엔드/백엔드 챌린지 진행 (누적 6000+)
항해 AI 플러스코스 1기 코치
강의
로드맵
전체 1수강평
- LangGraph를 활용한 LLM Agent 개발
- RAG를 활용한 LLM Application 개발 (feat. LangChain)
- RAG를 활용한 LLM Application 개발 (feat. LangChain)
게시글
질문&답변
2-7 병렬 처리를 통한 효율 개선 파트 chain 구축
안녕하세요! 그 이유는 hub.pull() 로 가져오는 프롬프트는 string이 아니라 PromptTemplate 이기 때문입니다. 다른 수강생분께서 질문을 주신 적 있어서 답변을 드린 적이 있는데요,(사진)string 처럼 보이지만 ChatPromptTemplate에서 HumanMessage에 해당합니다. 직접 작성하시려면 아래 코드처럼 작성하셔야 합니다from langchain_core.prompts import ChatPromptTemplate rag_prompt = ChatPromptTemplate.from_messages([ ('human', '''You are an assistant for question-answering tasks. Use the following pieces of retrieved context to answer the question. If you don't know the answer, just say that you don't know. Use three sentences maximum and keep the answer concise. Question: {question} Context: {context} Answer:''') ])
- 0
- 2
- 20
질문&답변
Template 사용에 관해 질문 있습니다.
안녕하세요! 좋은 질문 감사합니다. 인프런 AI 인턴의 답변과 유사한 의견인데요, 간단하게 말씀드리면 성능상에 차이는 없고, 테스트 해보시면서 개발하는 서비스에 더 좋은 성능을 내는 template을 사용하는 걸 추천드립니다PromptTemplate:단순 텍스트 완성 작업단일 문자열 형태 출력단순 질의응답, 텍스트 생성에 적합ChatPromptTemplate:다중 메시지 구조(시스템/사용자/AI 역할 구분)대화 흐름 관리 기능대화형 에이전트, 복잡한 상호작용에 적합두 템플릿의 선택은 주로 개발하려는 애플리케이션에 따라 결정하는 것이 좋습니다.
- 0
- 2
- 19
질문&답변
openai 429 에러 문의
안녕하세요! 카드 등록도 하고 충전도했는데 429가 나온다면 tier를 확인해보셔야합니다. OpenAI가 충전한 금액에 따라서 사용량에 대해 차등을 주고 있기때문입니다.https://platform.openai.com/docs/guides/rate-limits?tier=free#usage-tiers
- 0
- 2
- 23
질문&답변
Hub에서 다운 받은 프롬프트에 이미지 추가하기
안녕하세요 성규님! 답변을 드려보자면, hub.pull에서 가져오는 프롬프트는 허브 사이트에 표시가 되어있습니다. 다른분께서 질문으로 올려주셔서 설명한적이 있는데요, 요약하자면 허브에 작성되어있는 내용을 기반으로 ChatPromptTemplate으로 작성하시면 됩니다.랭체인에서 이미지를 프롬프트에 넣는 방법은 공식문서에 설명되어있습니다. 다만 rag-prompt의 context에 이미지를 넣을 수 없기 때문에, 허브에 있는 텍스트만 그대로 가져와서 이미지를 메세지로 넣어주는 편이 더 깔끔해보입니다. 추가로 궁금하신 부분이 있으시면 말씀해주세요~
- 0
- 1
- 37
질문&답변
3.5 강 14:20초 관련 질문입니다.
안녕하세요 성규님! 좋은 질문 감사합니다. 요거는 제가 오타를 냈네요 ㅠㅠ # 도구를 사용하여 메시지에 대한 응답을 생성합니다. response = llm_with_tools.invoke(messages)여기는 아예 필요가 없고, summary.content를 리턴해야합니다. 이번주는 살짝 무리라서 다음주에 촬영본을 수정해서 업데이트 해야겠네요. 확인해주셔서 감사합니다!
- 0
- 2
- 33
질문&답변
[질문 x 공유용] tailwind v4.0 으로 강의랑 다를 때 (import 다름, tailwind.config.js 없어짐 등)
감사합니다! 제공해주신 내용은 강의 자료에 추가해두겠습니다. 강의를 수강하시는 다른 분들도 도움 받으실 것 같아요~
- 0
- 1
- 48
질문&답변
langgraph를 streamlit과 연동(?)하는 과정에서 질문이 있습니다.
안녕하세요! 좋은 질문 감사합니다. 사실 streamlit은 production에서 쓰기 어렵다고 판단해서 LangGraph와는 연동을 해보지 못해 저도 질문해주신 덕분에 처음으로 시도해봤습니다. 여기서 장황하게 설명하는 것 보다는 코드를 보시는게 이해하기 편하실 것 같아서, .invoke() 를 활용해서 답변을 출력하는 chat.py 와 .stream() 을 활용해서 답변을 출력하는 chat_stream.py 를 추가해서 소스코드에 반영해두었습니다. invoke()는 간단한데, stream()은 쉽지 않더라구요. 자료를 찾던 와중에 LangGraph + Streamlit Cookbook을 발견해서 참고해서 작성했습니다.한번 확인 부탁드립니다!https://github.com/jasonkang14/inflearn-langgraph-agent
- 0
- 1
- 31
질문&답변
UpstageEmbeddings 를 사용하여 RAG를 구성하던 도중 Error...
안녕하세요! embedding을 생성하는 코드를 공유해주실 수 있을까요?
- 0
- 1
- 26
질문&답변
2.4강~2.7강 관련 질문이 있습니다.
안녕하세요! 좋은 질문 감사합니다. 하나씩 답변을 드리자면check_hallucination 과 check_doc_relevance 는 노드의 실행 결과에 따라 다음에 실행할 노드를 결정하는 edge로만 사용됩니다. 특정 조건에 따라 흐름을 제어하는 역할을 하므로, 별도의 노드로 선언되지 않고 edge로만 사용됩니다.반면, check_helpfulness 는 노드이자 edge로 활용됩니다. check_helpfulness 가 단순히 흐름을 제어하는 것뿐만 아니라, 그 자체로도 중요한 기능을 수행하기 때문입니다. 따라서, 가독성을 높이고 그래프의 구조를 명확히 하기 위해 별도의 노드로 선언되었습니다. 하지만, check_helpfulness 를 edge로만 선언해도 기능적으로는 문제가 없습니다. 설계상의 선택이며, 가독성과 유지보수성을 고려한 결정입니다.hallucination_prompt 를 보시면 not hallucinated 또는 hallucinated 를 리턴하게 되어있고, StrOutputParser() 를 활용해서, string만 뽑아내게 됩니다. 이 결과가 함수의 리턴값에 선언된 Literal의 옵션들과 동일하기 때문에 response를 리턴한다고 보시면 됩니다. 가능합니다. retrieval한 결과에 threshold(예를 들면 유사도가 70점은 넘어야 실제로 관련이 있다고 보는 점수)를 줘서, 사전에 정한 threshold를 넘기는 문서가 없는 경우에는 retrieval을 통해 가져올 문서가 없으니 web_search를 하도록 유도할 수 있습니다추가로 설명이 필요한 부분이 있으시면 말씀 부탁드립니다!
- 1
- 1
- 40
질문&답변
dictionary 데이터 관련 질문있습니다!
안녕하세요! 좋은 질문 감사합니다. 테스트를 해봐야겠지만, 저는 리스트 형태로 제공하는 것이 문맥을 제공하기 때문에 더 괜찮다고 생각하는데요, (이중에 하나만 고를 수 있다는 느낌으로)하지만 요즘 모델 성능들이 많이 좋아져서 쉼표가 구분자 역할을 잘 한다면 문자열 형식으로 시도해도 문제 없을 것 같습니다.
- 0
- 2
- 49