본문 바로가기

ML/인공지능

openapi chatGPT 사용기

https://openai.com/api/pricing/

 

Pricing

OpenAI is an AI research and deployment company. Our mission is to ensure that artificial general intelligence benefits all of humanity.

openai.com

Ada  는 가장 빠른 모델이고 Davinci 는 가장 강력한 모델

가격은 1,000 토큰당 사용량이된다. 토큰은 답변으로 나온 단어 조각으로 생각할 수 있다.

여기서 1,000개의 토큰은 약 750개의 단어입니다.

 

 

처음 가입하면 $18달러를 준다. 이정도면 3개월 내내써도 문제 없을꺼 같다.

바로 사용 가능하도록 에디터창이 있다.

https://beta.openai.com/playground

 

 

결과물

# csv 파일을 gzip로 변환하는 python 코드 작성

import gzip
import csv

# 원본 파일 읽기
with open('data/sample.csv', 'r') as f:
    reader = csv.reader(f)
    data = [row for row in reader]

# gzip 파일 쓰기
with gzip.open('data/sample.csv.gz', 'wt') as f:
    writer = csv.writer(f)
    writer.writerows(data)

 

 

# boto3을 이용한 aws athena query 실행 python code

# 쿼리 실행
response = client.start_query_execution(
    QueryString=query,
    QueryExecutionContext={
        'Database': 'default'
    },
    ResultConfiguration={
        'OutputLocation': 's3://aws-athena-query-results-812087491834-ap-northeast-2/'
    }
)

# 쿼리 실행 아이디
query_execution_id = response['QueryExecutionId']
print('Query Execution ID: ' + query_execution_id)

# 쿼리 실행 상태
response_query_status = client.get_query_execution(QueryExecutionId=query_execution_id)
query_status = response_query_status['QueryExecution']['Status']['State']
print('Query Status: ' + query_status)

# 쿼리 실행 상태가 'SUCCEEDED'가 될 때까지 대기
while query_status == 'RUNNING' or query_status == 'QUEUED':
    time.sleep(5)
    response_query_status = client.get_query_execution(QueryExecutionId=query_execution_id)
    query_status = response_query_status['QueryExecution']['Status']['State']
    print('Query Status: ' + query_status)

# 쿼리 실행 결과
if query_status == 'SUCCEEDED':
    response_query_result = client.get_query_results(QueryExecutionId=query_execution_id)
    print('Query Results:')
    for result in response_query_result['ResultSet']['Rows']:
        print('\\t'.join(result['Data']))
else:
    print('Query failed to run with error message: ' + response_query_status['QueryExecution']['Status']['StateChangeReason'])

# 쿼리 실행 아이디 삭제
response = client.batch_delete_named_query(
    NamedQueryIds=[
        query_execution_id,
    ]
)

# 쿼리 실행 아이디 삭제 상태
print('NamedQueryIds: ' + str(response['NamedQueryIds']))

# 쿼리 실행 아이디 삭제 상태가 'SUCCEEDED'가 될 때까지 대기
while query_status == 'RUNNING' or query_status == 'QUEUED':
    time.sleep(5)
    response_query_status = client.get_query_execution(QueryExecutionId=query_execution_id)
    query_status = response_query_status['QueryExecution']['Status']['State']
    print('Query Status: ' + query_status)

# 쿼리 실행 아이디 삭제 상태
if query_status == 'SUCCEEDED':
    response_query_result = client.get_query_results(QueryExecutionId=query_execution_id)
    print('Query Results:')
    for result in response_query_result['ResultSet']['Rows']:
        print('\\t'.join(result['Data']))
else:
    print('Query failed to run with error message: ' + response_query_status['QueryExecution']['Status']['StateChangeReason'])

개쩐다… 구글 검색 할 필요가 사라짐.

한글도 정말 잘된다.

단 가끔씩 무한루프에 빠질때가 있다.

보고 있다가 stop을 해준던가 Maximum length를 적당히 넣어서 최대치를 조절해줘야 한다.

 

(근데 몇년 안에 왠만한 프론트 작업은 AI가 할꺼 같다...)