openAI API, Text & Image 생성 예제

강의소개

소스 참조

  • 후루카와 히데카즈 저/트랜스메이트 역. (2023). GPT-4, ChatGPT, 라마인덱스, 랭체인을 활용한 인공지능 프로그래밍 한권으로 끝내는 OpenAI API 기반 LLM 애플리케이션 구축. 위키북스, 판매처 : https://www.yes24.com/Product/Goods/122533123

라이브러리 설치

  • openai 패키지를 설치한다.
!pip install openai
Collecting openai
  Obtaining dependency information for openai from https://files.pythonhosted.org/packages/26/a1/75474477af2a1dae3a25f80b72bbaf20e8296191ece7fff2f67984206f33/openai-1.12.0-py3-none-any.whl.metadata
  Downloading openai-1.12.0-py3-none-any.whl.metadata (18 kB)
.
.
.
[notice] A new release of pip is available: 23.2.1 -> 24.0
[notice] To update, run: python.exe -m pip install --upgrade pip

환경변수 준비

  • python-dotenv를 설치 한다.
!pip install python-dotenv
Collecting python-dotenv
  Obtaining dependency information for python-dotenv from https://files.pythonhosted.org/packages/6a/3e/b68c118422ec867fa7ab88444e1274aa40681c606d59ac27de5a5588f082/python_dotenv-1.0.1-py3-none-any.whl.metadata
  Downloading python_dotenv-1.0.1-py3-none-any.whl.metadata (23 kB)
Downloading python_dotenv-1.0.1-py3-none-any.whl (19 kB)
Installing collected packages: python-dotenv
Successfully installed python-dotenv-1.0.1

[notice] A new release of pip is available: 23.2.1 -> 24.0
[notice] To update, run: python.exe -m pip install --upgrade pip

.env 파일 저장

  • .env 파일 생성 후, OpenAI Key값을 아래와 같이 저장한다.
OPENAI_API_KEY = 'your_id'

저장한 값 불러오기

  • OPENAI_API_KEY를 불러오고 싶다면 다음 코드를 사용한다.
import dotenv
import os
env_file = dotenv.find_dotenv()
dotenv.load_dotenv(env_file)
print(os.environ['OPENAI_API_KEY'])
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

프롬프트 준비

  • 여러줄에 걸친 문자열 정의
prompt = '''다음 이야기를 써주세요기타를 좋아하지만 컴맹인 여고생이 어떤 계기로 록밴드에 가입하고, 낯선 인간관계를 통해 활동하게 되는 이야기'''
import os
from openai import OpenAI
client = OpenAI(
    # This is the default and can be omitted    api_key=os.environ.get("OPENAI_API_KEY"),
)
response = client.chat.completions.create(
  model="gpt-3.5-turbo",
  messages=[
    {"role": "system", "content": "이 채팅은 좋습니다. 남동생과 대하를 하겠습니다. "},
    {"role": "user", "content": "안녕"},
    {"role": "assistant", "content": "남동생은 현재 컴퓨터를 하고 있습니다."},
    {"role": "user", "content": "너 지금 뭐하고 있어?"}
  ],
   temperature=0)
response.choices[0].message.content
'남동생은 지금 사용자와 대화하고 있습니다. 대하를 하고 있습니다.'

이미지 생성

from openai import OpenAI
client = OpenAI(
    # This is the default and can be omitted    api_key=os.environ.get("OPENAI_API_KEY"),
)
response = client.images.generate(
  model="dall-e-3",
  prompt="cat dancing on car",
  size="1024x1024",
  quality="standard",
  n=1,
)
image_url = response.data[0].url
image_url
'https://oaidalleapiprodscus.blob.core.windows.net/private/org-znknr4OkH2n7N79B7CFhmUj9/user-fyfrdMeg75Lew6QIXrb6JCzr/img-QI9YCiwm7w4N99SeSaFuverT.png?st=2024-02-27T05%3A20%3A01Z&se=2024-02-27T07%3A20%3A01Z&sp=r&sv=2021-08-06&sr=b&rscd=inline&rsct=image/png&skoid=6aaadede-4fb3-4698-a8f6-684d7786b067&sktid=a48cca56-e6da-484e-a814-9c849652bcb3&skt=2024-02-26T20%3A01%3A40Z&ske=2024-02-27T20%3A01%3A40Z&sks=b&skv=2021-08-06&sig=O9MYsIZUoSy2jjDjTVLeHbhPGyWtnHP%2BfFEJUgVNSvU%3D'

st-pages 라이브러리 소개

강의소개

개요

  • Streamlit 생태계에 기반한 Components를 살펴본다.
  • st-pages 라이브러리를 확인한다.

Components

  • Components는 Streamlit Community와 Creators가 직접 개발한 Streamlit 관련 라이브러리를 말한다.
  • 여기에는 다양한 라이브러리들이 존재한다.

Untitled

활용법 주의

Untitled

OpenAI API 인증키 발급

강의소개

개요

  • OpenAI API 인증키 발급
  • OpenAI 회원가입을 이미 한 것으로 전제

인증키 발급

Untitled

  • API를 선택한다.

Untitled

  • 왼쪽 메뉴에서 API Keys를 선택한다.

Untitled

  • API Key 획득을 위해 Create New Secret Key 버튼을 클릭한다.

Untitled

creating multipages in streamlit web using official docs

강의소개

개요

Streamlit에서 multipage란 무엇인가?

  • 앱의 크기가 커질수록 다중 페이지 구성은 관리와 탐색의 용이성을 제공함.
  • Streamlit은 이를 쉽게 가능하게 하며, 클릭 한 번으로 해당 페이지에 빠르게 이동할 수 있다.

폴더 및 파일 구조

  • Home.py 파일을 만든 후에는 엔트리포인트 파일과 관련된 pages/about.py 파일을 만들어 페이지를 추가할 수 있다. 다음은 다중 페이지 앱에 유효한 디렉토리 구조는 아래와 같다.

Screenshot 2024-02-25 at 11.44.33 AM.png

취업준비생을 위한 Github 포트폴리오 정리

강의소개

개요

  • Github에서 포트폴리오 정리하는 방법에 대해 기술합니다.
  • 취업준비생들의 취업을 진심으로 응원합니다.

취업준비생들에게 개발이란

  • Github에 배포를 하겠다는 뜻은 앞으로 계속적으로 발전 시키겠다는 것을 의미합니다.
  • 그런데, 개발은 혼자 할 수 없기 때문에 다른 사람들의 참여를 독려하겠다는 것과 같습니다.
  • 가장 좋은 시나리오는 간단하게 배포를 진행하고 프로젝트의 전반적인 취지를 설명한 후 함께 발전시켜 나갈 동료를 구하는 것입니다.

Untitled

출간 기념, Streamlit으로 프로젝트 한방에 끝내기 with 파이썬 개정판 (2024, Sara & Evan)

  • 개정판 책을 출간하였습니다.

book.jpg

Streamlit이란

  • Streamlit은 데이터 분석가가 간단한 코드 몇줄로 빠르게 웹앱을 만들어 줄 수 있는 Python 라이브러리입니다.

누가 읽어야 할까요?

  • 데이터 분석가 : 웹개발은 모르지만 대시보드를 만들어야 하는 분
  • 국비교육 수강중인 비전공자 : Java 웹개발로 머신러닝 플랫폼을 만들어야 하는 분
  • 개별적인 포트폴리오가 필요한 취업준비생 : ML/DL 알고리즘 익히는 것도 어려운데, 웹개발은 언제 배우죠?

데모 페이지

Untitled

django tutorial - pyburger 3

공지

  • 멀티캠퍼스 수업 보조자료로 활용하기 위해 아래 교재 내용을 발췌하였음을 알립니다.

Untitled

Github에서 프로젝트 내려받기

Untitled

  • 다음 명령어를 실행하여 Local의 적당한 곳에서 다운로드 받는다.

폴더 수정

  • .DS_Store 파일은 삭제한다
  • 폴더명은 pyburger로 변경한다.

Untitled

VS Code로 폴더 열기

  • 아래와 같이 VS Code로 pyburger 폴더를 연다.

Untitled

프로젝트 설정

  • 가상환경을 설정하고 django를 설치한다.
$ virtualenv venv
$ source venv/Scripts/activate
(venv) $ pip install 'django<5'

첫번째 확인사항

  • runserver를 실행하여 정상적으로 작동하는지 확인한다.
(venv) $ python manage.py runserver

Untitled

django tutorial - pyburger 2

공지

  • 멀티캠퍼스 수업 보조자료로 활용하기 위해 아래 교재 내용을 발췌하였음을 알립니다.

Untitled

별도의 app 추가

  • application을 생성하는 명령어를 활용하여 app을 생성한다.
python manage.py startapp burgers
  • 트리 구조는 다음과 같다.
$ tree -L 2
.
|-- burgers
|   |-- __init__.py
|   |-- admin.py
|   |-- apps.py
|   |-- migrations
|   |-- models.py
|   |-- tests.py
|   `-- views.py
|-- config
|   |-- __init__.py
|   |-- __pycache__
|   |-- asgi.py
|   |-- settings.py
|   |-- urls.py
|   |-- views.py
|   `-- wsgi.py
|-- db.sqlite3
|-- manage.py
|-- templates
|   |-- burger_list.html
|   `-- main.html
`-- templates.zip

새 Application을 Django 등록

  • confing/settings.py 에서 INSTALLED_APPS 리스트에 아래와 같이 추가
INSTALLED_APPS = [
    "burgers", 
    "django.contrib.admin",
    "django.contrib.auth",
    "django.contrib.contenttypes",
    "django.contrib.sessions",
    "django.contrib.messages",
    "django.contrib.staticfiles",
]

Model 클래스 구현

  • Model 클래스 정의하기 전에 햄버거를 나타낼 수 있는 정보를 몇 가지 정리한다.
    • 이름
    • 가격
    • 칼로리
  • burgers/models.py 에서 아래와 같이 코드를 생성한다.
from django.db import models

# Create your models here.
class Burger(models.Model):
    name  = models.CharField(max_length=20)
    price = models.IntegerField(default=0)
    calories = models.IntegerField(default=0)

데이터베이스 마이그레이션

  • 새로운 테이블을 만들기 위해 다음 명령어를 사용한다.
python manage.py migrate

Untitled

django tutorial - pyburger 1

Django Pyburger - 1, 맛보기

공지

  • 멀티캠퍼스 수업 보조자료로 활용하기 위해 아래 교재 내용을 발췌하였음을 알립니다.

Untitled

Django 설치

  • 터미널에서 django를 설치한다.
pip install 'django<5'

Untitled

Django 버전 확인

  • 터미널에서 Django의 버전을 확인한다.
django-admin --version
4.2.9

Django 프로젝트 생성

  • 다음 명령어를 실행하여 django 프로젝트를 생성한다.
  • djang-admin은 터미널에서 실행할 수 있는 프로그램이며, django 프로젝트를 관리하는 여러 기능들을 가지고 있음
  • startproject는 django 프로젝트의 기반 구조를 만드는 기능
django-admin startproject config .
$ tree -L 2
.
|-- README.md
|-- config
|   |-- __init__.py
|   |-- asgi.py
|   |-- settings.py
|   |-- urls.py
|   `-- wsgi.py
|-- manage.py
`-- venv
    |-- Lib
    |-- Scripts
    `-- pyvenv.cfg

4 directories, 8 files

개발용 서버 동작 확인

  • 명령어는 다음과 같다.
    • 이 때 manage.py 가 있는 프로젝트 경로에서 실행해야 한다.
python manage.py runserver

Untitled

SQLitebroswer 설치 (M1, Mac)

SQLitebroswer 설치 (M1, Mac)

개요

  • SQLitebroswer 설치를 진행해본다.

설치

Untitled

  • 자신의 OS에 맞는 버전을 선택해 다운로드 후 설치
  • 필자는 Apple Silicon 버전을 선택했다.

Screenshot 2024-01-24 at 12.25.34 AM.png

  • 아래 그림과 같이 추가하면 된다.

Screenshot 2024-01-24 at 12.26.49 AM.png