로딩...

langchain

기본 흐름

flowchart LR
  질문 --query--> agent
  agent --query+context---> LLM
  LLM --> parser
  agent -.query.-> retrievers
  retrievers -.context.-> agent 
  • retriever 는 도구나 검색을 추상화
    • vector-db 를 두고 유사도 검색등이 여기서 행해진다
    • vector 화 를 하기 위해서는 사용하는 모델의 embedding 을 거쳐야한다
  • agent 는 질문을 받아 retriever 를 사용할지 여부를 판단하고 그 결과를 context 에 취합

embed

  • data를 벡터로 변환하며 모델에 의해 수행된다

cache

  • text embed 시에 text 를 hash 로 하여 key-value store 에 저장하여 중복 임베딩을 막는다
  • redis 등이 사용된다

rate limits

  • model 서비스의 제약을 넘어서면 에러가 발생하므로 동시 리퀘스트 제한 기능을 제공한다
new OpenAIEmbeddings({ maxConcurrency: 5 })

timeout

  • model 의 임베딩 기본값은 무제한이므로 타임아웃 설정을 통해 에러를 발생시킬 수 있다.
new OpenAIEmbeddings({ timeout: 1000 })