LLM (Large Language Model)의 Function Calling 또는 Tool Calling을 사용할 때, 함수에서 예외가 발생하면 Python 프로세스가 중단되는 경우가 있습니다. 이를 방지하고, 프로세스를 안전하게 유지하며 예외를 LLM에게 전달하기 위해 재시도(retry) 정책을 설정하는 방법을 알아보겠습니다. 특히 LangChain 프레임워크에서는 Tenacity 라이브러리를 활용하여 재시도 메커니즘을 내장하고 있습니다. 이번 포스팅에서는 tenacity.retry 장식자(Decorator)를 사용해 함수 재시도를 구현하고, 실패 시 커스터마이징된 응답을 반환하는 방법을 설명합니다.
PostgreSQL에서는 기본적으로 public 스키마가 제공되며, Django 역시 기본적으로 이 public 스키마를 사용합니다. 그러나 프로젝트의 요구사항에 따라 다른 스키마를 사용해야 할 때가 있습니다. 이 글에서는 PostgreSQL에서 public 외의 다른 스키마를 Django와 함께 사용하는 방법과 설정 시 주의해야 할 점들을 정리해보겠습니다.
`X-Accel-Buffering` 헤더는 Nginx에서 프록시된 응답의 버퍼링을 제어합니다. `X-Accel-Buffering: no`로 설정하면 Nginx는 해당 응답을 버퍼링하지 않고 즉시 클라이언트로 전달합니다. 이는 Server-Sent Events(SSE)와 같이 실시간 데이터 전송이 필요한 경우에 유용합니다.
웹서버를 구성할 때에는 각종 설정 텍스트 파일을 편집할 일이 빈번합니다. 대부분의 웹서버가 리눅스로 구성되어 있기 때문에, 이러한 작업은 주로 CLI(Command line interface)에서 이루어집니다. 하지만, GUI(Graphical user interface) 위주로 텍스트 파일을 편집하는 우리들에게는 CLI에서의 텍스트 파일 편집은 생소하고 어렵게 느껴질 수 있습니다. 이번 포스팅에서는 리눅스 CLI에서의 텍스트 파일 편집을 위한 3가지 방법을 살펴보겠습니다.
2023년 2월 기준으로 3.11.2가 최신 버전인데요. 우분투 20.04 버전에는 파이썬 3.8이 설치되어있습니다. 조금 오래된 버전이죠. 장고에서도 최신버전의 파이썬을 쓰기를 권장하고 있습니다. pyenv를 통해 최신 버전의 파이썬을 설치하는 방법에 대해서 살펴보겠습니다. 시스템에 설치된 파이썬은 그대로 지켜주세요. ;-)
리눅스 OS는 대부분의 웹서비스에서 사용되는 운영체제이며, 개발 환경 또한 리눅스에서 구축하는 것이 가장 이상적입니다. 하지만, 많은 개발자들이 Windows 운영체제를 사용하고 있기 때문에 리눅스 배포를 어려워하는 경우가 많습니다. 이에 따라, 이번 포스팅에서는 Windows 운영체제에서 리눅스를 설치하고, 장고(Django) 서비스를 구동하는 방법에 대해 알아보겠습니다.
장고의 File storage API는 기본적으로 로컬 파일 시스템 만을 지원합니다. 클라우드에서는 AWS S3, Azure Storage, Google Cloud Storage 등을 스토리지 시스템을 많이 사용하는 데요. 장고에서는 django-storages 라이브러리를 통해 settings 설정 변경 만으로 손쉽게 스토리지 시스템을 활용할 수 있습니다.