목록분류 전체보기 (198)
포도가게의 개발일지
Sequential AgentsLangGraph 위에 구축된 flowise의 sequential agents는 work flow를 DCG로 구조화하여 대화형 에이전트 시스템을 개발을 용이하게 합닏. 이를 통해 제어된 loop와 반복적이 프로세스를 구현할 수 있습니다.이 그래프는 서로 연결된 노드들로 구성되며, 정보와 작업의 순차적 흐름을 정의합니다. 이를 통해 에이전트는 입력을 처리하고 작업을 실행하며, 구조화된 방식으로 응답을 생성할수있습니다.Understanding Sequential Agents' DCG ArchitectureNode-based processing: 그래프의 각 노드는 언어 처리, 도구 실행, 또는 조건부 로직과 같은 고유한 기능을 캡슐화하는 독립적인 처리 단위입니다.Data fl..
FlowiseFlowise는 개발자가 맞춤형 LLM 오케스트레이션 흐름과 AI 에이전트를 구축할 수 있도록 돕는 오픈 소스 저코드 도구입니다.Flowise Agent system현재 flowise는 multi-agents와 sequential agents 방식을 제공합니다.Multi-agentssystem architectureUser: 사용자는 시스템의 시작점으로, 초기 입력이나 요청을 제공합니다. 범위를 벗어난 요청은 부정확한 결과, 예기치 않은 loop 또는 시스템 오류를 초래할 수 있습니다. 때문에 사용자 요청은 시스템의 핵심기능과 일치해야합니다.Supervisor: supervisor는 시스템의 오케스트레이터 역할을 수행합니다. 사용자의 요청을 분석하고 이를 하위 작업으로 분해한후 각 worke..
LangFlow- Langflow는 다중 에이전트 및 RAG(리트리벌-증강 생성) 애플리케이션을 구축하기 위한 시각적 프레임워크입니다. 오픈 소스이며, Python 기반으로 완전히 커스터마이징이 가능하고, LLM(대형 언어 모델) 및 벡터 스토어와 독립적으로 사용할 수 있습니다. Sequential tasks agent- Sequential Tasks Agent 흐름은 여러 Agent 컴포넌트를 사용하여 다중 에이전트 애플리케이션을 구축하는 방식입니다. 각 에이전트는 고유한 LLM 모델과 도구 세트를 가지며, Prompt 컴포넌트는 Agent Instructions 필드에 연결되어 에이전트의 동작을 제어합니다. Data component- 이 컴포넌트들은 데이터를 로드할 때 일부 처리를 하거나 타입 검사..
LangGraph- LangGraph는 LLM(대형 언어 모델)을 활용하여 상태 기반의 다중 액터 애플리케이션을 구축하는 라이브러리로, LangGraph는 사이클을 포함하는 흐름을 정의할 수 있어, 대부분의 에이전트 아키텍처에 필수적인 특성을 제공합니다. 1. Flow- LangGraph는 애플리케이션의 실행 흐름을 그래프 형태로 정의합니다. 각 그래프의 노드는 작업을 나타내며, 이 작업들은 다른 작업들과 연결되어 흐름을 형성합니다. 노드 간의 연결은 데이터 흐름을 정의하며, 각 노드는 입력과 출력을 갖습니다. 이 흐름은 에이전트가 실행하는 작업을 순차적 또는 조건부로 처리할 수 있게 합니다. 2. Cycles- LangGraph의 중요한 특징 중 하나는 사이클을 지원하는 점입니다. 대부분의 전통적인 ..
LangChain Core- langchain-core는 LangChain 생태계에서 사용하는 기본 추상화와 LangChain 표현 언어를 포함하는 패키지입니다. LangGraph- langgraph는 상태 기반의 다중 행위자 애플리케이션을 구축하는 라이브러리로, LangChain과 원활하게 통합되지만 독립적으로 사용할 수도 있습니다. LangServe- LangServe는 LangChain 실행 가능 함수와 체인을 REST API로 배포할 수 있도록 도와줍니다. Runnable- Runnable은 LCEL로 생성된 체인을 의미하며, 이는 Runnable 인터페이스를 구현한 객체입니다. • 단일 LLM 호출: LCEL을 사용하지 않고 모델을 직접 호출하는 것이 좋습니다. • 간단한 체인(예: 프롬프트 ..
LLM을 이용한 서비스를 개발하면서, 시스템 명령어가 너무 많이 포함되게 되었습니다. 이로 인해 명령어들 간에 모순이 발생하거나, 모델이 일부 명령어를 제대로 이해하지 못하게 되었습니다. 결과적으로 프롬프트의 사소한 변화에도 출력이 크게 달라지는 문제가 발생했습니다. 또한, 하나의 요청에서 너무 많은 작업을 처리하려다 보니, 원하는 결과물이 아닌 부정확한 출력들이 생성된 것 같습니다. 필요한점- 작고 구체적인 단위로 보다 정확한 처리- 여러 모델을 협력시켜서 최종 아웃풋에 도달 LangChain이란 무엇일까요?- LangChain은 다양한 AI 애플리케이션을 구축하는 데 유용한 프레임워크로, LLMs(대형 언어 모델)을 다루는 방법과 데이터 처리 및 결과 생성 과정을 최적화하는 다양한 도구를 제공합니다...
### __proto__와 prototype property- __proto__와 prototype 프로퍼티는 동일한것을 가리킬 수 있지만 사용 주체가 다릅니다.- __proto__는 모든 객체가 가지고있으며 [[Prototype]] 내부 슬롯에 직접 접근을 할 수 있기 때문에 참조 접근하기 위하여 즉 객체가 자신의 prototype에 접근 또는 수정하기 위해서 사용되는 프로퍼티 입니다.- prototype 프로퍼티는 생성자(constructor)만 가지고 있으며 생성자 함수가 자신이 생성할 객체에 어떤 프로토타입을 할당해야하는지를 저장하기위한 목적으로 사용됩니다. ### 생성자 함수와 Prototype생성자 함수에 매번 method를 만들게 되면 중복되는 code가 매번생성되며 memory를 낭비하게..
고정소수점예를 들어, 64비트 숫자 123.456을 표현할 때, 정수부에 123, 소수부에 456을 할당합니다.구현부호비트(1) 정수부비트(31) 소수부비트(32) 부동소수점 (소수점의 위치가 고정되어 있지 않고 움직인다.)고정소수점 소수부비트가 한정적이라 작은 값을 표현하기에 표현에 부족함으로 생김.2진수로 인한 근사치로 저장하다보니 계산 miss가 될 수 있음.소수점 이하의 표현 차이 그러나 10진수에서 정확하게 표현되는 많은 소수점 이하 값들이 2진수에서는 무한 소수로 표현됩니다. 예를 들어, 0.1을 2진수로 변환하게 되면 무한소수가 된다.10진수는 기저수가 10(2와 5의 곱)이기 때문에 2나 5의 거듭제곱 분모를 가진 분수는 유한 소수로 표현될 수 있습니다. 반면, 2진수는 기저수가 2이기 때..