파이썬 이것저것 78

[OPENAI API] OpenAi API를 무료로 활용하는 방법

랭체인, n8n등을 공부하다가 Api를 활용하는 일이잦아지면서 OpenAi를 결재해서 사용하는 경우가 잦아졌다. 그런데 최근, OpenAI가 Chat 모델 Api를 무료로 사용하는 것을 풀어버렸다.하루에 250만 토큰의 제한이 있긴하지만, 분명 충분한 양이라고 생각한다. 사용방법은 아래와 같다. https://openai.com/index/openai-api/ 먼저 OpenAi Api를 들어가서 가입을 해준다. 그 다음에 SETTINGS -> Data controls -> Share inputs and outputs with OpenAI -> Enabled for all projects 를 설정해준다. 대신 설명을 읽어보면 알겠지만, OpenAI와 당신의 입력 및 출력 데이터를 공유하여 모델 개선 및 학..

[python] Flask 배포하기

웹 서버와 SGI 웹 서버란 실제로 사용자의 요청을 받고 응답을 주는 엔진엑스(Nginx), 아파치(Apache) 등을 말하며, 네트워크 통신의 전반적인 부분을 담당한다.Nginx, 아파치와 같은 웹서버와 플라스크 애플리케이션 등 웹 애플리케이션 사이에서는 통신이 필요하다. 서버 게이트웨이 인터페이스(SGI)가 바로 그 통신 규약, 이 규약을 통해 웹 서버는 사용자의 HTTP 요청을 웹 애플리케이션에 전달하고, 애플리케이션의 응답을 다시 사용자에게 전달한다. 플라스크에서의 SGI는 그중에서도 플라스크 웹 애플리케이션과 웹 서버 사이의 통신 방식만을 정의한다. Flask run 만으로도 내부적으로 간단한 WSGI 서버를 실행시킨다.그러나 이것은 운영 환경에서 사용하기엔 부족한 면이 많음 - 성능 이슈 : ..

[python] Flask Restapi 구현

Restful api 컴퓨터나 스마트폰 애플리케이션이 서버에 정보를 요청하거나 보낼 수 있는 방법 중 하나이다. 서버는 정보가 저장된 컴퓨터를 말하고, 클라이언트는 그 정보를 사용하려는 사람이나 애플리케이션을 의미한다. RESTful API는 정보 교환을 단순하고 효율적으로 만들어줌, 웹사이트나 애플리케이션에서 중요한 역할을 하게 됨 HTTP 매서드 이해하기HTTP 메서드는 서버와 클라이언트가 어떻게 대화 할것인지 정한 규칙 GET(조회) : 클라이언트가 서버에게 "이 정보 좀 줘"라고 요청하는 것임, 웹 브라우저에서 웹페이지를 열 때, 서버에게 그 페이지의 정보를 가져오라고 요청 POST(생성) : 클라이언트가 서버에게 새로운 정보를 보내는 것, 새글을 블로그에 올릴 때 그 글의 내용을 서버에 올리라는..

[Python] Flask 세션과 쿠키

세션 과 쿠키웹 애플리케이션에 상태를 관리하는 두 가지 주요기술은 session과 쿠키임 웹은 기본적으로 상태를 유지않는(stateless) 특성이 있는데, 이는 웹서버가 클라이언트의 요청 사이의 상태 정보를 저장하지 않는다는 것을 의미함 웹페이지를 이동할 때 마다 사용자가 누구인지, 어떤 작업을 햇는지 등의 정보를 매번 인식 세션과 쿠키는 상태를 유지하지 않는 웹의 한계를 극복하기 위해 사용됨 세션 : 세션은 서버 측에서 사용자의 상태 정보를 유지, 사용자가 웹 애플리케이션에 로그인 하면, 서버는 고유한 세션 ID를 생성하고, 이를 쿠키로 클라이언트에 전송한다. 클라이언트는 이 세션 ID를 가진 쿠키를 사용해 이후 요청에서 자신을 인증하고 서버는 이 ID를 사용해 사용자의 세션 데이터에 접근한다. 세션..

[Flask] Flask + mysql 연결

Flask에서 DB와 연결을 하려면 여러 방법이 있지만, 일반적으로 많이 사용되는 것은 SQL-Alchemy를 사용하여 연결하는 것이다. SQL-Alchemy는 객체-관계 매핑을 제공하여 파이썬 클래스를 데이터베이스 테이블과 연결을 통해 보다 직관적이고 유지관리를 쉽게 해준다. 데이터베이스 종류는다양하지만, 일반적으로 많이 사용되는 MySQL을 사용한다고 가정한다.Flask에서  DB를 접속하려면, Flask-SQLAlchemy와 mysql연결을 위한 pymysql을 설치한다.  - 필요한 패키지 설치pip install Flaskpip install Flask-SQLAlchemy## db 종류에 따라 선택해서 설치하면 됨pip install pymysql   - 사전 환경설정먼저 PC에 MySQL을 설..

[Python] UFO: A UI-Focused Agent for Windows OS Interaction

AI-PC의 미래를 볼 수 있는 기술, 마이크로스프트의 UFO를 보고자 한다. 논문 https://arxiv.org/html/2402.07939v1 UFO : A UI-Focused Agent for Windows OS Interaction License: arXiv.org perpetual non-exclusive license arXiv:2402.07939v1 [cs.HC] 08 Feb 2024 UFO : A UI-Focused Agent for Windows OS Interaction Chaoyun Zhang, Liqun Li, Shilin He, Xu Zhang, Bo Qiao, Si Qin, Minghua Ma, Yu Kang, Qingwei Lin, Saravan Rajmohan, arxiv...

[Python] Gpt4Free 여러 LLM모델을 무료로 써보기

https://github.com/xtekky/gpt4free GitHub - xtekky/gpt4free: The official gpt4free repository | various collection of powerful language models The official gpt4free repository | various collection of powerful language models - xtekky/gpt4free github.com https://www.aitimes.com/news/articleView.html?idxno=150737 'GPT-4' 무료로 이용할 수 있는 'GPT4Free' 화제 - AI타임스 오픈AI의 결제 시스템을 속여 \'GPT-4\'를 무료로 사용할 수 있도록 ..

[python] 프로그래머스 지도찾기

https://school.programmers.co.kr/learn/courses/30/lessons/17681 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 비트연산을 통해 #또는 공백을 풀어내는 문제였다. format으로 이진수를 변경할 때, n길이 만큼 공백형태를 변경해야 됬는데, 이부분을 format함수의 zfill 메서드를 사용해서 해결할 수 있었다. 아래에 해결코드이다. def decrypt_secret_map(n, arr1, arr2): decrypted_map = [] for i in range(n): # 두 배열의 각 원소를 이진수로 변..

[Python] Yolo-World 실시간 비전언어 모델

SOTA에 방문해서 최신모델들이 어떤것들이 있나 찾아보다가 2024년 1월 31일에 발표된 Yolo-World 모델을 보게 되었다. 텐센트 AI 랩에서 발표한 논문으로, 실시간으로 사용할 수 있는 비전-언어 모델이라고 한다. 이에 대해 살펴보자 (yolo-world 논문) https://arxiv.org/abs/2401.17270 YOLO-World: Real-Time Open-Vocabulary Object Detection The You Only Look Once (YOLO) series of detectors have established themselves as efficient and practical tools. However, their reliance on predefined and tra..

[python] Stack을 활용한 괄호검사 알고리즘

수식 표기나, 프로그래밍 언어, HTML 문서 등 다양한 분야에서 괄호로 구분문자를 사용한다. 이들은 주로 간단한 데이터나 문자열을 묶어 그룹으로 만들고 그룹으로 끝낸다. 예를 들어 다음과 같은 소스코드가 있을때, array_max.h int find_array_max(int score[], int n) { int i, tmp = score[0]; for (i = 1; i tmp){ tmp = score[i]; } } return tmp; } 해당 프로그램이 정상작동 하려면, 괄호들이 같은 유형들 끼리 쌍을 이루어야 한다. 해당 코드에서 괄호를 검사 시 다음과 같은 조건이 해당되어야 한다. 1. 왼쪽 괄호의 갯수와 오른쪽 괄호 갯수가 같아야 한다. 2. 같은 타입의 괄호에서 왼쪽 괄호가 오른쪽 괄호보다 ..