본문 바로가기

분류 전체보기115

CORS 와 PreFlight CORS => Cros Orgin Resource Sharing (교차출저 리소스 공유) 2009년에 Html5 표준으로 채택된 프로토콜이며,SOP에 의해 제한된 교차 출저 간 리소스 공유를 허용하기 위한 방법. 그러기 위해서는 위 사진 예시로 구글서버 cors헤더설정 코드에서 네이버를 추가해줘야한다.SOP => Same Origin Policy (동일 출저 정책) 현재 출저와 동일한 출저의 리소스만 접근할 수 있도록 하는 정책동일 출저란 도메인,프로토콜,포트번호 모두 동일해야한다. 이렇게 하나라도 다른경우 동일 출저 정책에 의해리소스 접근이 제한된다.  * SOP가 없을 경우 가능한 보안 취약점은 무엇일까?사용자 인증 정보에 해당하는 세션 ID같은 정보들이 쿠키에 포함되어 있을 수 있기 때문에, 이 세.. 2024. 10. 11.
문서 처리 시스템 어떤 사이트들 보면 챗봇이 있어서 그 서비스에 대한것만 질문,응답을 해준다.일단 하는방법은 동영상 분석할때랑 똑같다. 문서 처리 공식 문서문서 내용만 답변하도록 참고 공식 문서 1. Gemini Api로 문서 업로드smash_cloud = "/Users/seok/Downloads/smash_cloud.pdf"doc_file = genai.upload_file(path=smash_cloud)while doc_file.state.name == "PROCESSING": app.logger.info('Waiting for video to be processed.') time.sleep(2) doc_file = genai.get_file(doc_file.name) response = mode.. 2024. 8. 23.
히스토리,컨택스트 캐싱 이용하면서 히스토리 적용 1. 히스토리만 적용 (히스토리를 자동으로 관리 해주는 방식)일단 히스토리 적용 안하는이상 GEMINI는 사용자가 이전 질문한것들은 기억 못하고 오직 새질문만 받고 답한다.예를들어 처음 질문 "이 코드를 만들어 줘봐" 하고 응답 받고 그 다음 질문 "아까 만들어준 코드에서 이 기능도 추가해줘봐" 할시 GEMINI는 이전에 대한 질문,응답을 기억 못하니 "죄송합니다,전에 답변한 코드에 대한 정보가 없습니다" 이런식으로 답변한다.그러므로 이전 질문,응답에 대한 정보를 포함해서 새질문을 요청해야한다.#multi_turn1.pyimport google.generativeai as genai model = genai.GenerativeModel('gemini-1.5-flash')chat_session = mode.. 2024. 8. 8.
DB 조회시 인덱스 기능 알겠습니다. Spring 프로젝트에서 데이터베이스 쿼리를 실행할 때 JPQL을 이용하는 방법과 MyBatis를 이용하는 방법을 각각 설명하고, 인덱스 설정 및 활용 예시도 함께 제공하겠습니다.JPQL을 이용할 때인덱스 설정데이터베이스 테이블에 인덱스를 설정하려면 SQL을 사용합니다. 예를 들어, MySQL 데이터베이스에서 users 테이블의 username 컬럼에 인덱스를 추가하려면 다음과 같은 쿼리를 실행합니다.sqlCREATE INDEX idx_username ON users(username);JPQL로 조회Spring Data JPA를 사용하여 JPQL을 이용해 데이터를 조회할 수 있습니다. 1.엔티티 클래스 정의:@Entitypublic class User { @Id @Generated.. 2024. 8. 5.
엑셀에 있는 데이터를 PANDAS 이용해서 DB에 저장 일단 엑셀의 구조는 이렇게 있고,각인덱스 데이터마다 스페이스,매체,프로그램에 해당하는 태그들을 TB_EXHIT_TAG 테이블에 [ 플랫폼 라이브 인덱스  10 , 중정 인덱스 12 , 다원예술 인덱스 13] 일경우 밑에처럼 이렇게 삽입한다.905 / 10 / 현재시간905/ 12 / 현재시간905/ 13 / 현재시간    import pandas as pdimport mysql.connector# MySQL 데이터베이스 연결 설정db_config = { 'user': '계정이름', 'password': '비번', 'host': '호스트', 'port': 포트번호, 'database': 'DB이름'}# MySQL 연결conn = mysql.connector.connect(**db.. 2024. 8. 5.
이미지,동영상을 서버에 저장 안하고 바로 Gemini요청하기 클라가 이미지 업로드후 서버한테 요청할때 원래는 서버에 저장하고 Gemini한테 요청 했는데 이제 저장안하고 요청하고 클라한테 반환할때도 메모리에 임시 저장중인거를 반환한다.from flask import Flask, request, render_templateimport google.generativeai as genaifrom PIL import Imageimport base64@app.route('/submit', methods=['POST'])def gemini_question(): question = request.form['question'] # 파일 저장 경로 설정 # request.files['image']는 FileStorage 객체에 접근이고 실제로 읽으려면 read().. 2024. 7. 24.
파이썬 파일 SHA256해시 클라에서 요청할때마다 영상이 동일하면 캐싱하고 아니면 업로드하는데일단 이전 요청 동영상이랑 이후 요청 동영상이랑 동일한지 판별하려면 해싱후 하는방법이 있다.근데 영상의 제목으로만 하면 당연히 같은 영상인데 제목만 같을 수 도 있으니 파일 자체 읽어 해싱을 한다. def generate_file_hash(file_path): """파일의 SHA256 해시를 생성합니다.""" sha256_hash = hashlib.sha256() with open(file_path, "rb") as f: for byte_block in iter(lambda: f.read(4096), b""): sha256_hash.update(byte_bl.. 2024. 7. 23.
Flask,Gemini 에러 or 호환 관련 1)urllib3 라이브러리가 현재 사용 중인 SSL 라이브러리 버전과 호환되지 않음을 경고해서 urllib3 다운그레이드 하거나 OpenSSL 업그레이드한다.*urllib3 다운그레이드pip install urllib3==1.26.15#현재 설치된 버전 보기pip show urllib3#다시 되돌릴 경우(최신버전)pip install --upgrade urllib3#원하는 버전(예를들어 2.0.0 경우)pip install urllib3==2.0.0 *OpenSSL 업그레이드brew updatebrew install opensslbrew upgrade openssl 2024. 7. 19.
Flask,Gemini Flask 설치: 터미널에서 다음 명령어를 입력하여 Flask를 설치합니다pip install Flask app.py파일 생성후(이름은 자유이나 flask이름으로 하는것만 피하면 될듯)from flask import Flaskapp = Flask(__name__)@app.route('/about')def about(): return 'The about page'if __name__ == '__main__': app.run(debug=True) # 괄호안 host="현재 연결중인 네트워크ip주소" 적으면 현재 네트워크 사용중인 기기 모두 사용가능 이제 Gemini를 이용하려면 패키지 설치pip install google-generativeai Gemini 테스트로 json말고 text .. 2024. 7. 18.