langchain(7)
-
[Langchain] Passthrough를 활용한 간단한 Chain 구성하기
서론안녕하세요! 오늘은 Langchain에서 Chain을 구성할 때 자주 사용되는 Passthrough에 대해서 알아보려고 합니다. 특히 LCEL(Langchain Expression Language)에서 많이 활용되는 기능인데요, 이름 그대로 데이터를 '통과'시키는 역할을 하지만 생각보다 활용도가 높답니다. 무엇이 좋을까?Passthrough는 다음과 같은 장점이 있습니다:Chain 구성을 단순화할 수 있습니다.입력 데이터를 그대로 전달하면서도 추가적인 처리가 가능합니다.다른 Chain들과 조합하기 쉽습니다.코드로 살펴보기간단한 예제 코드로 살펴보겠습니다.from langchain.chat_models import ChatOpenAIfrom langchain.schema.runnable import R..
2024.11.14 -
[Langchain] FastAPI에서 LLM Agent를 활용한 Response Streaming
서론저번에 한번 같은 글을 올렸었는데요 그것보다 훨씬 더 간편하고 성능적으로 개선된 방법을 설명해 볼까 합니다.기존글은 이거예요!https://todaycodeplus.tistory.com/70 [Langchain] Langserve에서 LLM Agent를 활용한 Response Streaming기존에 LCEL기반의 LLM pipeline에서 Agent를 활용하는 방식으로 전환을 하고 있었습니다. 그 이유는 아래와 같습니다.1. Retriever를 구조화하여 사용하기 힘들다.2. 복잡한 형태, 크로스 도매인을 가진todaycodeplus.tistory.com 무엇이 바뀌었을까?우선 기존에는 방식이 다음과 같았습니다. Agent가 결과물을 생성하는 과정에서 LLM모델의 Output에서 생성되는 Token을..
2024.10.31 -
[LLM] OpenSearch - VectorStore로 써보기
안녕하세요 오늘은 Vector Store로 많이 쓰이는 OpenSearch를 가져와 봤습니다. Elastic Search를 Fork해서 사용하는만큼 Elastic Search와 유사한점도 그리고 다른점도 있습니다. 하지만 오늘은 이 차이점을 설명하는 자리는 아니라 이만 줄이고, 이제 Vector Store로서 장/단점을 그리고 간단할 설치와 Langchain에서 사용까지 알아볼까 합니다. 1. OpenSearch의 장점과 단점- 첫번째 장점 그건 바로 최근 아주 관심을 많이 받고 있는 RAG중에서도 Full Text Search (Lexical Search)를 Simillerity Search(Semantic Search)와 같이 쓸 수 있단 점 입니다. 성능이 좋은 다른 DB도 많지만. 기본적으로 이 ..
2024.09.04 -
[LLM] 프롬프트를 활용하며 느낀점 & 효과가 있던 방법 2편
지난번 소개드린 1편에 이어서 2편을 적어보려 합니다.https://todaycodeplus.tistory.com/72 [LLM] 프롬프트를 활용하며 느낀점 & 효과가 있던 방법 1편오늘은 프롬프트를 활용하며 느낀점을 한번 정리해보려고 합니다. 본격적으로 프롬프트를 활용해서 서비스를 개발하기 시작한것은 약 3개월 전 입니다. 그 당시 저는 프롬프트라곤 코드 작성todaycodeplus.tistory.com 1. 구조화된 출력 (Structured output)사실 지금은 크게 의미가 없을 수 있습니다. 왜냐하면 OpenAI에서 Structured Output을 지원하는 API를 제공하기 시작했기 때문이죠https://platform.openai.com/docs/guides/structured-output..
2024.08.28 -
[LLM] Langchain ReAct Agent에 DALL-E tool 추가하기
안녕하세요 오랜만에 또 글을 씁니다. 요즘 많은 분들이 Agent를 활용해서, AI Product를 만들고 계신데요, 그중에서 우리가 일반적으로 사용하는 gpt에도 들어있는 기능을 한번 구현해보고자 합니다. 우리가 GPT에 질문을 할 때 "테슬라 모델3에 황금색 필름 래핑한 모습인 사진 보여줘" 같은 질문을 하게 된다면. GPT는 DALL-E-3를 호출하여 이미지를 생성하고 쳇 화면에 표출해 주곤합니다.이런 이미지는 어떻게 쳇 화면에서 바로 인식하고 생성하는것일까요? 바로 ReAct Agent같은 반응형을 이용하면 가능합니다. Agent는 다양한 Tool을 등록하고 등록된 tools를 Agent LLM이 질문(요구사항)에 따라 어떤 도구를 사용할지 판단하는 과정을 거칩니다. 이 과정에서 이미지를 생성해야..
2024.08.02 -
[Langchain] Langserve에서 LLM Agent를 활용한 Response Streaming
기존에 LCEL기반의 LLM pipeline에서 Agent를 활용하는 방식으로 전환을 하고 있었습니다. 그 이유는 아래와 같습니다.1. Retriever를 구조화하여 사용하기 힘들다.2. 복잡한 형태, 크로스 도매인을 가진 질문에 대하여 답변하기 더 용이하다. 하지만 단점도 있습니다.1. 답변을 생성하기 위한 과정이 추가되다보니 답변이 느리다.2. LLM의 가끔의 멍청함으로 포맷을 정확히 지키지 못해, 추가 Token발생으로 비용이 쪼~금 더 나갈때가 있다. 그러나 이 단점중 2번째인 Formating 문제가 Claude 3.5 Sonnet이 출시되며 말끔하게 해결되어 Agent 전환을 하고 있는데...Agent의 답변은 여러 단계를 거쳐 마지막 Final Answer가 출력되는 시점에 일괄 출력되도록 ..
2024.06.26