[OpenAI] openai.RateLimitError: Error code: 429 에러
·
AI
Trouble Shootingopenai.RateLimitError: Error code: 429https://platform.openai.com/docs/guides/error-codes/api-errors자주 요청하거나, 요금제보다 많은 요청을 하면 제한되는 것다만, 나는 많이 요청하지 않았는데 ?API 키를 여러번 지웠다 만들면서 해당 에러를 겪었다.API를 처음 생성할 때만 KEY값을 알려주는데, 해당 KEY값을 미리 복사해두지 않아 여러번 만들게 되었다..새 계정을 만들어서 해결 완료 -> 키는 API 발급 시 처음에만 보여주니까 복사 꼭하기.. 이것 때문에 키 여러번 만들고 지움기존의 계정도 시간이 지나니까 해당 에러가 발생하지 않았음.또한 결제로 달러를 충전해놓으면 해결된다는 글들을 확인했다.
[FastAPI] Uvicorn / Gunicorn
·
Back
Uvicorn / Gunicorn1. UvicornFastAPI의 비동기 기능을 지원하는 ASGI 서버로서 실제 요청/응답을 처리.ASGI ↔ WSGI단독 실행 시 단일 프로세스만 사용 → 병목 발생 가능.2. Gunicorn여러 개의 워커 프로세스를 띄워 병렬 요청 처리를 가능하게 함.CPU 코어 수에 따라 워커를 나눠서 트래픽을 분산시켜 성능 향상.`gunicorn` + `uvicorn.workers.UvicornWorker` 조합gunicorn app.main:app -k uvicorn.workers.UvicornWorker --workers 4 --bind 0.0.0.0:8000gunicorn이 여러 워커 프로세스를 실행각 워커는 uvicorn을 내부적으로 실행비동기 처리(uvicorn) + 병렬..
[Langchain] langchain-openai api 응답 json 포멧 지정하기
·
AI
.with_structured_output() 메소드는 모델 응답을 구조화된 형식으로 처리할 수 있게 하여 API 개발에서 더 직관적이고 안정적인 구현을 가능하도록 합니다..with_structured_output().with_structured_output()은 OpenAI 모델이 출력하는 데이터를 특정 형식(Schema)으로 구조화할 수 있도록 도와주는 메소드입니다. 이를 통해 응답 데이터가 예상한 형식을 벗어나지 않도록 강제할 수 있습니다.명확한 응답 구조: API 응답 데이터의 일관성을 유지할 수 있습니다.유효성 검사: 미리 정의된 스키마에 따라 데이터를 검증하여 오류를 줄입니다.코드 간결화: 추가적인 데이터 파싱 및 검증 로직 없이 안정적인 데이터 처리가 가능합니다.사용 방법1) 데이터 스키마 ..
[Poertry] poetry shell 명령어가 먹히지 않아..
·
Back
Issue❯ poetry shellThe command "shell" does not exist.다른 명령어는 잘 먹히는데 왜 "shell" 명령어만 먹히지 않는 거지?SolutionPoetry 공식문서 Commands | Documentation | Poetry - Python dependency management and packaging made easyWhen using --local-version, the identifier must be PEP 440 compliant. This is useful for adding build numbers, platform specificities, etc. for private packages. --local-version is deprecated and ..
[Django] 장고 ORM 쿼리 N+1 해결하기
·
Back/django
쿼리 N+1 문제쿼리 한번으로 N건의 데이터를 가져왔을때, 원하는 데이터를 얻기위해 N건의 데이터를 가져온 데이터 수만큼 반복해서 2차적으로 쿼리를 수행하는 성능 이슈해결 방법 : Eager-loadinglazy-loading를 피해야 한다.lazy-loading 이란 django에서 ORM을 작성할때, queryset에 담겨있는 데이터를 이용할 때에 SQL문을 호출하는 것django는 이러한 성능 문제를 해결할 수 있도록 Lazy-loading방식을 피하고 Eager-loading방식으로 바꾸는 두가지 방법을 제공함. select_related() 와 prefetch_related()다. 두 메서드 모두 ORM(객체 관계 매핑)을 사용할 때 성능 최적화를 위해 사용되는 method이다. 두 method..
[Django] 일대일관계로 User 모델 확장하기
·
Back/django
일대일관계로 User 모델 확장하기로그인, 권한 부여 등과 상관이 없는 사용자 정보 필드를 저장할 때 사용.# models.pyfrom django.db import modelsfrom django.contrib.auth.models import Userfrom django.db.models.signals import post_savefrom django.dispatch import receiverclass Profile(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE, primary_key=True) introduction = models.TextField(default="안녕하세요", blank=True, ..
[Django] models.py 정리
·
Back/django
Models장고에서 'models'는 DB와의 상호 작용을 정의하는 데 사용함.DB 테이블 구조를 정의, 해당 테이블과 상호 작용할 수 있는 파이썬 클래스각 모델은 단일 DB 테이블에 매핑클래스를 통해 DB의 테이블을 생성하고 쿼리를 실행하여 데이터를 검색, 추가, 업데이트 및 삭제 가능Models Doc DjangoThe web framework for perfectionists with deadlines.docs.djangoproject.com예시from django.db import modelsclass Musician(models.Model): first_name = models.CharField(max_length=50) last_name = models.CharField(max_le..
[Django] Django 프로젝트 시작하기 위한 기본 명령어
·
Back/django
Django 설치pip install djangopython도 설치Django 프로젝트 만들기django-admin startproject 프로젝트명프로젝트 생성python manage.py makemigrations # 1번python manage.py migrate # 2번1. makemigrations모델의 변경 사항을 추적하여 데이터베이스 마이그레이션 파일을 생성모델 클래스를 수정하거나 새로운 모델을 추가한 경우, 이 변경 사항을 데이터베이스에 적용할 수 있도록 마이그레이션 파일을 생성db.sqlite3 파일 생성2. migratemakemigrations에서 생성된 마이그레이션 파일을 기반으로 데이터베이스 스키마를 변경데이터베이스에 적용되지 않은 마이그레이션들이 실행되어 실제 데이터베이스의 스키..
[프로그래머스(Python)] 햄버거 만들기
·
Coding Test/프로그래머스
문제https://school.programmers.co.kr/learn/courses/30/lessons/133502 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr코드def solution(ingredient): stack = [] cnt = 0 for i in ingredient: stack.append(i) if stack[-4:] == [1, 2, 3, 1]: # 1231 패턴 발생하면 cnt += 1 # 1231 패턴 발생 횟수 증가 for i in range(..
[프로그래머스(Python)] 등차수열의 특정한 항만 더하기
·
Coding Test/프로그래머스
문제https://school.programmers.co.kr/learn/courses/30/lessons/181931 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr코드def solution(a, d, included): rs = 0 for i in range(len(included)): rs += (a + d * i) * int(included[i]) return rs해설int(included[i])는 True일 때 1, False일 때 0으로 나타난다.