본문 바로가기
배워야 산다/OPENAI

openai - backend생성

by 인라인타지마 2023. 7. 13.

백앤드

 - 프론트앤드에서 요청을 받아 openai에 요청 후 리턴된 응답 값을 프론트앤드에 전달

 - 개발 방안 : 파이썬의 fastapi 라이브러리를 사용

 app실행 명령어 : uvicorn [파일명]:[app] --reload

   ex. backend.py인 경우 uvicorn backend:app --reload

 

from typing import List
from fastapi import FastAPI
from pydantic import BaseModel
import openai

openai.api_key = "openai_api_key"


def chat(messages):
    response = openai.Completion.create(model="davinci:ft-personal:raterteam-qa-bot-2023-06-29-06-29-10", messages=messages)
    print("보낸 메세지:" , messages)
    resp_dict = response.to_dict_recursive()
    assistant_turn = resp_dict['choices'][0]['message']
    print("받은 메세지:" , assistant_turn)
    return assistant_turn # {"role": "rater_bot", "content": "blahblahblah"}

app = FastAPI()

class Turn(BaseModel):
    role: str
    content: str

class Messages(BaseModel):
    messages: List[Turn]  # [{"role": "rater_man", "content": "blahblahblah"}, {"role": "rater_bot", "content": "blahblahblah"}

@app.post("/chat", response_model=Turn)
def post_chat(messages: Messages):
    messages = messages.dict()
    assistant_turn = chat(messages=messages['messages'])
    return assistant_turn
반응형