분류 전체보기30 Langchain - 캐싱 LLM 애플리케이션을 개발 및 운영 하다보면 동일한 프롬프트로 반복해서 호출해야 하는 경우가 생긴다.이럴 경우 캐시를(적절하게) 사용 하여 비용적인 부분 및 퍼포먼스를 향상 시킬수 있다 메모리 캐싱로컬 시스템의 메모리를 사용from dotenv import load_dotenvimport os# 환경 변수 로드load_dotenv()# 환경 변수 사용azure_openai_api_key = os.getenv('azure_openai_api_key')azure_openai_endpoint = os.getenv('azure_openai_endpoint')azure_open_api_version = os.getenv('azure_open_api_version')azure_deployment_gpt4test .. 2024. 5. 10. Langchain - Model 컴포넌트와 호출 방법 Model은 Langchain 에서 ChatGPT나 PaLM 모델을 추상화한 객체이다.보통 LLM모델들이 문장을 완성하는 LLM 기능 (질문에 대한 답변, 문서 요약, 아이디어 제공 등등)의 멀티모달 모델(__AzureOpenAI__)과,사람과 상호작용을 하는 채팅을 위한 챗봇 모델(__AzureChatOpenAI__), 이렇게 두 가지 모델을 제공한다. Langchain도 마찬가지로 이 두 가지 모델에 대한 추상화 계층을 제공하고 있다.LM은 입력된 프롬프트의 명령에 따라 답변을 내는 모델이다.ChatGPT, PaLM API등의 LLM 모델에 대한 추상화 객체를 제공한다. LLM 모델 객체를 생성하는 방법은 모델 제공자에 따라 다르며, 특히 모델 제공자에 따라서 지원하는 튜닝 가능한 패러미터들도 다르.. 2024. 5. 3. Langchain - Hello Langchain Langchain은 여러 LLM 모델을 지원하는데, 주요 모델들만 살펴보면 Open AI ChatGPT, Google PaLM, Huggine Face, MS Azure ChatGPT, AWS BedRock, Anthropic claude 등을 지원한다.주요 모델 프로파이더는 https://python.langchain.com/docs/integrations/providers 를 참고하면 된다.지원하는 LLM에 따라서 Langchain의 기능이 일부만 제공되는 경우가 있는데, 예를 들어 Streaming 기능 같은 경우에는 지원 안되는 모델들이 많다.기능에 대한 지원 여부는 LLM 컴포넌트 쪽을 확인하면 된다.https://python.langchain.com/docs/integrations/llms/i.. 2024. 5. 3. Langchain - 기본 구성 및 환경 셋팅 Langchain 개념Langchain은 복잡한 LLM 애플리케이션 개발을 돕기 위한 오픈소스 프레임워크 이다.여러 장점중에 LLM 종류에 상관없이 다양한 LLM으로 쉽게 계발이 가능하며외부 데이터 베이스나 벡터 데이터베이스 검색 엔진등의 외부 컴포넌트를 통합 하여 사용이 용이 하다LangSmith,LangServ등을 이용하여 모니터링 및 모델 평가등을 개발 가능 하게 한다.환경 구성miniconda https://docs.anaconda.com/free/miniconda/index.html Latest Miniconda installer links by Python version — Anaconda documentationLatest Miniconda installer links by Python .. 2024. 5. 2. React + IIS + Node.js 프론트 React 와 백앤드 Node.js(Reverse Proxy) 를 IIS 배포 하는 과정 입니다. 1. React 빌드 build폴더 내용 복사 하여 서버로 복사 합니다. npm run build 2. IIS 구성 Turn Windows Features on or off 클릭 => IIS 설치(node 에서 소켓을 사용할 경우 WebSocket Protocol 설치) IIS 설정 site 명(IIS 항목에 표시되는 이름) 입력 후 Physical path 경로 설정(1항목에서 복사한 폴더) Host Name 도메인 명 입력 (도메인 없을경우 아이피로 접근해야한다) 3.Node.js (Reverse Proxy) 1. 서브 응용 프로그램 생성 Alias명 입력후 임의의 폴더 설정(해당 폴더에 Web... 2023. 8. 7. Azure OpenAI + Google Search API + Chroma Google Search API를 이용하여 검색된 내용을 Embeddings 하여 Chroma(Vector DB)에 넣고 Chroma의 내용을 OpenAI를 통해 Q&A하는 내용을 Python으로 만들어 보겠습니다. import os from langchain.utilities import GoogleSearchAPIWrapper from langchain.vectorstores import Chroma from langchain.embeddings import OpenAIEmbeddings from langchain.text_splitter import RecursiveCharacterTextSplitter from langchain.chat_models import AzureChatOpenAI fro.. 2023. 6. 21. 7. Nginx 로드밸런싱 1) 로드밸런싱 서버에 가해지는 부하를 분산해주는 장치 또는 기술 *Scale up : 서버 자체의 성능을 높이는것 *Scale out : 여러 대의 서버를 두는것 로드 밸런싱은 Scale out과 연관된다. 2) 로드밸런싱의 종류 1. 하드웨어에서의 로드밸런싱 L4 로드 밸런싱 : OSI 7 계층 중 4계층 단에서 부하를 분산(IP,Port기준으로) L7 로드 밸런싱 : OSI 7 계층 중 7계층 단에서 부하를 분산(4계층 기능 포함(IP,Port), Http,Url 기준) 2.소프트웨어에서의 로드밸런싱 Nginx : 오픈소스 소프트웨어,Health Check 유료버전에서만 지원 HAProxy : 오픈소스 소프트웨어,Health Check지원 3) Nginx setting ubunt 기준 /etc/ng.. 2023. 5. 19. 6. Node.js Worker Thread 1) 개요 노드는 단일 스레드에서 실해되고, 이벤트 루프에는 한 번에 하나의 프로세스만 발생합니다. (병렬로 실행되지 않는다.) 만약 인 메모리에서 발생하는 대규모 데이터 세트의 복잡한 계산같은 CPU 자원을 많이 사용하는 코드가 있으면, 이 코드가 다른 프로세스가 실행되는걸 차단할 수도 있습니다. 마찬가지로, CPU 자원을 많이 사용하는 코드가 있는 서버에 요청하는 경우, 이 코드가 이벤트 루프를 차단하고 다른 요청들이 처리되지 않게 할 수도 있습니다. CPU 작업과 I/O 작업을 구분하는 게 중요합니다. 앞에서 말했듯이, Node.js 코드는 병렬로 실행되지 않습니다. 오직 I/O 작업만 비동기식으로 실행되므로, 병렬로 실행(Non Blocking I/O)됩니다. 그래서 워커 스레드는 I/O 집약적인.. 2023. 5. 19. 5. Nginx reverse proxy 설정 1) Reverse proxy 란 역방향 프록시는 클라이언트 요청을 가져와서 하나 이상의 프록시 서버에 요청을 보내고 응답을 가져오고 서버의 응답을 클라이언트에 전달하는 서비스입니다. 성능과 확장성 때문에 NGINX는 HTTP 및 비 HTTP 서버의 역방향 프록시로 자주 사용됩니다. 일반적인 역방향 프록시 구성은 Nginx를 Node.js, Python 또는 Java 애플리케이션 앞에 배치하는 것입니다. Nginx를 역방향 프록시로 사용하면 다음과 같은 몇 가지 추가적인 이점을 얻을 수 있습니다. 2) Reverse proxy 장점 로드 밸런싱 : Nginx는 클라이언트의 요청을 프록시 서버에 분산하기 위해 로드 밸런싱을 수행하여 성능, 확장성 및 신뢰성을 향상시킬 수 있습니다. 캐싱 : Nginx를 역.. 2023. 5. 18. 4. 배포 및 pm2 서비스 등록 1) Git 에서 소스 받기 배포할 소스를 Git에 Commit 후 Ubuntu에 설치된 git으로 소스를 내려 받는다 최초 소스를 clone 한다 git clone https://github.com/******/*****.git package.json 패키지를 설치하기 위해 명령어 위치는 package.json이 있는 폴더에서 실행 npm install 2) Pm2으로 서비스 등록 npm run 명령어로 실행 할 경우 터미널을 닫으면 실행이 중단되기때문에 pm2로 서비스 등록하여 데몬화 하여 사용 한다. pm2 설치 npm install -g pm2 pm2 버전 pm2 --version 소스js 폴더로 이동 pm2 start index.js 3) 재배포 git root 폴더에서 소스를 내려 받는다. g.. 2023. 5. 17. 이전 1 2 3 다음