From 8cb96b83849ee8fd14fe3a3be2a665b9ac1554b4 Mon Sep 17 00:00:00 2001 From: Hana Oh <108045487+hanaisreal@users.noreply.github.com> Date: Thu, 15 Feb 2024 11:12:27 +0000 Subject: [PATCH 1/7] retry --- {openai => src/openai}/utils.py | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) rename {openai => src/openai}/utils.py (76%) diff --git a/openai/utils.py b/src/openai/utils.py similarity index 76% rename from openai/utils.py rename to src/openai/utils.py index b2d190c..f875fc3 100644 --- a/openai/utils.py +++ b/src/openai/utils.py @@ -1,13 +1,17 @@ -from openai import OpenAI - -client = OpenAI(api_key=os.getenv("OPENAI_API_KEY")) +import openai from dotenv import load_dotenv import os # Load environment variables from .env file load_dotenv() +openai.api_key = os.getenv("OPENAI_API_KEY") + -# Retrieve the OPENAI_API_KEY from the .env file +# Example input +input_messages = [ + {"speaker": "ai", "text": "가장 기억에 남는 일은 무엇인가요?"}, + {"speaker": "user", "text": "첫째 아이가 태어난 날이 가장 기억에 남아. 와이프가 아이를 낳고 나서 아이를 보여줬을 때, 정말 감동적이었어."} +] def generate_response(input): # Format the input for the OpenAI API @@ -17,21 +21,17 @@ def generate_response(input): messages.append({"role": role, "content": msg["text"]}) try: - completion = client.chat.completions.create(model="gpt-4", - messages=messages) + completion = openai.ChatCompletion.create( + model="gpt-4", + messages=messages + ) - reply = completion.choices[0].message.content + reply = completion.choices[0].message['content'] return reply except Exception as e: print(f"An error occurred: {e}") return None -# Example input -input_messages = [ - {"speaker": "ai", "text": "가장 기억에 남는 일은 무엇인가요?"}, - {"speaker": "user", "text": "첫째 아이가 태어난 날이 가장 기억에 남아. 와이프가 아이를 낳고 나서 아이를 보여줬을 때, 정말 감동적이었어."} -] - # Generate and print the response response = generate_response(input_messages) print("GPT-4 Response:", response) From 7707bb97fb0e47a0301a202e4b320709d8c5b270 Mon Sep 17 00:00:00 2001 From: Hana Oh <108045487+hanaisreal@users.noreply.github.com> Date: Thu, 15 Feb 2024 11:24:29 +0000 Subject: [PATCH 2/7] fix: updated gpt prompt --- src/openai/utils.py | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/src/openai/utils.py b/src/openai/utils.py index f875fc3..f048c73 100644 --- a/src/openai/utils.py +++ b/src/openai/utils.py @@ -8,14 +8,23 @@ # Example input -input_messages = [ - {"speaker": "ai", "text": "가장 기억에 남는 일은 무엇인가요?"}, - {"speaker": "user", "text": "첫째 아이가 태어난 날이 가장 기억에 남아. 와이프가 아이를 낳고 나서 아이를 보여줬을 때, 정말 감동적이었어."} -] +# input_messages1 = [ +# {"speaker": "ai", "text": "가장 기억에 남는 일은 무엇인가요?"}, +# {"speaker": "user", "text": "첫째 아이가 태어난 날이 가장 기억에 남아. 와이프가 아이를 낳고 나서 아이를 보여줬을 때, 정말 감동적이었어."} +# ] +# input_messages2 = [ +# {"speaker": "ai", "text":"노인 일자리에 참여하게 된 동기가 있나요?"}, +# {"speaker": "user", "text": "일자리에 참여하기 전까지 집에서 살림만 하면서 살았어요. 자식들을 다 키워놓고 남편과 집에만 있으니 할 일이 없잖아요. 그래서 무료함을 느끼던 차에 집 근처를 지나다니다가 군포시니어클럽 사무실이 보여서 무작정 들어가서 물어봤어요. 상담을 한 후에 실버급식도우미 자리가 있다고 해서 일을 시작하게 됐어요."} +# ] def generate_response(input): + system_message = { + "role": "system", + "content": "당신은 노인분들을 잘 이해하며, 진정성이 느껴지는 짧은 답변(한 마디에서 세 마디 사이)과 질문을 한국어로 생성합니다. 공감을 표현하거나 바로 질문하는 형식으로 응답해주세요." + } + # Format the input for the OpenAI API - messages = [] + messages = [system_message] for msg in input: role = "system" if msg["speaker"] == "ai" else "user" messages.append({"role": role, "content": msg["text"]}) @@ -23,7 +32,10 @@ def generate_response(input): try: completion = openai.ChatCompletion.create( model="gpt-4", - messages=messages + messages=messages, + temperature=0.7, # Adjust for creativity; lower for more precise responses + max_tokens=60, # Adjust based on the length of response you expect; keep it short for 1-3 phrases + ) reply = completion.choices[0].message['content'] @@ -33,5 +45,5 @@ def generate_response(input): return None # Generate and print the response -response = generate_response(input_messages) -print("GPT-4 Response:", response) +# response = generate_response(input_messages2) +# print("GPT-4 Response:", response) From 44f5ab34ae9c71a8b13866031e6c340ee0330749 Mon Sep 17 00:00:00 2001 From: Hana Oh <108045487+hanaisreal@users.noreply.github.com> Date: Thu, 15 Feb 2024 12:38:55 +0000 Subject: [PATCH 3/7] fix: role update --- src/utils/openai.py | 36 ++++++++++++++++++++++-------------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/src/utils/openai.py b/src/utils/openai.py index e141bdd..0dc486d 100644 --- a/src/utils/openai.py +++ b/src/utils/openai.py @@ -1,26 +1,34 @@ -from openai import OpenAI +import openai from dotenv import load_dotenv import os -client = OpenAI(api_key=os.getenv("OPENAI_API_KEY")) - # Load environment variables from .env file load_dotenv() - -# Retrieve the OPENAI_API_KEY from the .env file - -def generate_response(input): - # Format the input for the OpenAI API - messages = [] - for msg in input: +openai.api_key = os.getenv("OPENAI_API_KEY") + +def generate_response(input_messages): + # Initial system message describing the role and behavior of the GPT + system_message = { + "role": "system", + "content": "이 AI는 노인분들을 잘 이해하며, 진정성이 느껴지는 짧은 답변(한 마디에서 세 마디 사이)과 질문을 한국어로 생성합니다. 공감을 표현하거나 바로 질문하는 형식으로 응답해주세요. 질문 도중 끊기지 않게 해주세요. " + } + + # Format the input for the OpenAI API, starting with the system message + messages = [system_message] + for msg in input_messages: role = "system" if msg["speaker"] == "ai" else "user" messages.append({"role": role, "content": msg["text"]}) try: - completion = client.chat.completions.create(model="gpt-4", - messages=messages) - - reply = completion.choices[0].message.content + completion = openai.ChatCompletion.create( + model="gpt-4", + messages=messages, + temperature=0.7, # Adjust for creativity; lower for more precise responses + max_tokens=60, # Adjust based on the length of response you expect; keep it short for 1-3 phrases + + ) + + reply = completion.choices[0].message['content'] return reply except Exception as e: print(f"An error occurred: {e}") From a37375c80062bf656b839ef3bf38ceb384cee60f Mon Sep 17 00:00:00 2001 From: r4bb1t Date: Thu, 15 Feb 2024 21:46:05 +0900 Subject: [PATCH 4/7] fix: question id --- src/routers/question.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routers/question.py b/src/routers/question.py index 74cc9e2..6a5dc8d 100644 --- a/src/routers/question.py +++ b/src/routers/question.py @@ -9,7 +9,7 @@ router = APIRouter() -@router.get("", +@router.get("/{id}", summary="id로 질문 가져오기") async def get_question(id: int, db: Session = Depends(get_db)): question = db.query(LQuestions).filter( From 23ca6187f03dff3bca3663b64f29e78374867555 Mon Sep 17 00:00:00 2001 From: Hana Oh <108045487+hanaisreal@users.noreply.github.com> Date: Thu, 15 Feb 2024 13:02:49 +0000 Subject: [PATCH 5/7] fix: bug in getting result --- src/openai/utils.py | 34 +++++++++++++++------------------- 1 file changed, 15 insertions(+), 19 deletions(-) diff --git a/src/openai/utils.py b/src/openai/utils.py index f048c73..028c77c 100644 --- a/src/openai/utils.py +++ b/src/openai/utils.py @@ -6,26 +6,16 @@ load_dotenv() openai.api_key = os.getenv("OPENAI_API_KEY") - -# Example input -# input_messages1 = [ -# {"speaker": "ai", "text": "가장 기억에 남는 일은 무엇인가요?"}, -# {"speaker": "user", "text": "첫째 아이가 태어난 날이 가장 기억에 남아. 와이프가 아이를 낳고 나서 아이를 보여줬을 때, 정말 감동적이었어."} -# ] -# input_messages2 = [ -# {"speaker": "ai", "text":"노인 일자리에 참여하게 된 동기가 있나요?"}, -# {"speaker": "user", "text": "일자리에 참여하기 전까지 집에서 살림만 하면서 살았어요. 자식들을 다 키워놓고 남편과 집에만 있으니 할 일이 없잖아요. 그래서 무료함을 느끼던 차에 집 근처를 지나다니다가 군포시니어클럽 사무실이 보여서 무작정 들어가서 물어봤어요. 상담을 한 후에 실버급식도우미 자리가 있다고 해서 일을 시작하게 됐어요."} -# ] - -def generate_response(input): +def generate_response(input_messages): + # Initial system message describing the role and behavior of the GPT system_message = { "role": "system", - "content": "당신은 노인분들을 잘 이해하며, 진정성이 느껴지는 짧은 답변(한 마디에서 세 마디 사이)과 질문을 한국어로 생성합니다. 공감을 표현하거나 바로 질문하는 형식으로 응답해주세요." + "content": "이 AI는 노인분들을 잘 이해하며, 진정성이 느껴지는 짧은 답변(한 마디에서 세 마디 사이)과 질문을 한국어로 생성합니다. 공감을 표현하거나 바로 질문하는 형식으로 응답해주세요." } - - # Format the input for the OpenAI API + + # Format the input for the OpenAI API, starting with the system message messages = [system_message] - for msg in input: + for msg in input_messages: role = "system" if msg["speaker"] == "ai" else "user" messages.append({"role": role, "content": msg["text"]}) @@ -35,7 +25,7 @@ def generate_response(input): messages=messages, temperature=0.7, # Adjust for creativity; lower for more precise responses max_tokens=60, # Adjust based on the length of response you expect; keep it short for 1-3 phrases - + stop=["\n", "user:"], # Stop generating if it encounters these, to keep responses brief ) reply = completion.choices[0].message['content'] @@ -44,6 +34,12 @@ def generate_response(input): print(f"An error occurred: {e}") return None +# Example input +input_messages = [ + {"speaker": "ai", "text": "가장 기억에 남는 일은 무엇인가요?"}, + {"speaker": "user", "text": "첫째 아이가 태어난 날이 가장 기억에 남아. 와이프가 아이를 낳고 나서 아이를 보여줬을 때, 정말 감동적이었어."} +] + # Generate and print the response -# response = generate_response(input_messages2) -# print("GPT-4 Response:", response) +response = generate_response(input_messages) +print("GPT-4 Response:", response) From 1c68035647cfb4e874e04e51dbc8c808dd45ea92 Mon Sep 17 00:00:00 2001 From: Hana Oh <108045487+hanaisreal@users.noreply.github.com> Date: Thu, 15 Feb 2024 13:05:06 +0000 Subject: [PATCH 6/7] fix: bug on getting result --- src/openai/utils.py | 32 ++++++++++++++++---------------- src/utils/openai.py | 45 --------------------------------------------- 2 files changed, 16 insertions(+), 61 deletions(-) delete mode 100644 src/utils/openai.py diff --git a/src/openai/utils.py b/src/openai/utils.py index 028c77c..a12330b 100644 --- a/src/openai/utils.py +++ b/src/openai/utils.py @@ -6,18 +6,25 @@ load_dotenv() openai.api_key = os.getenv("OPENAI_API_KEY") + +# Example input +input_messages = [ + {"speaker": "ai", "text": "가장 기억에 남는 일은 무엇인가요?"}, + {"speaker": "user", "text": "첫째 아이가 태어난 날이 가장 기억에 남아. 와이프가 아이를 낳고 나서 아이를 보여줬을 때, 정말 감동적이었어."} +] +# input_messages2 = [ +# {"speaker": "ai", "text":"노인 일자리에 참여하게 된 동기가 있나요?"}, +# {"speaker": "user", "text": "일자리에 참여하기 전까지 집에서 살림만 하면서 살았어요. 자식들을 다 키워놓고 남편과 집에만 있으니 할 일이 없잖아요. 그래서 무료함을 느끼던 차에 집 근처를 지나다니다가 군포시니어클럽 사무실이 보여서 무작정 들어가서 물어봤어요. 상담을 한 후에 실버급식도우미 자리가 있다고 해서 일을 시작하게 됐어요."} +# ] + def generate_response(input_messages): - # Initial system message describing the role and behavior of the GPT system_message = { "role": "system", - "content": "이 AI는 노인분들을 잘 이해하며, 진정성이 느껴지는 짧은 답변(한 마디에서 세 마디 사이)과 질문을 한국어로 생성합니다. 공감을 표현하거나 바로 질문하는 형식으로 응답해주세요." + "content": "당신은 노인분들을 잘 이해하며, 진정성이 느껴지는 짧은 답변(한 마디에서 세 마디 사이)과 질문을 한국어로 생성합니다. 공감을 표현하거나 바로 질문하는 형식으로 응답해주세요." } - - # Format the input for the OpenAI API, starting with the system message - messages = [system_message] - for msg in input_messages: - role = "system" if msg["speaker"] == "ai" else "user" - messages.append({"role": role, "content": msg["text"]}) + + # Correctly format the input for the OpenAI API + messages = [system_message] + input_messages # This line combines the system message with the input messages try: completion = openai.ChatCompletion.create( @@ -25,7 +32,6 @@ def generate_response(input_messages): messages=messages, temperature=0.7, # Adjust for creativity; lower for more precise responses max_tokens=60, # Adjust based on the length of response you expect; keep it short for 1-3 phrases - stop=["\n", "user:"], # Stop generating if it encounters these, to keep responses brief ) reply = completion.choices[0].message['content'] @@ -33,13 +39,7 @@ def generate_response(input_messages): except Exception as e: print(f"An error occurred: {e}") return None - -# Example input -input_messages = [ - {"speaker": "ai", "text": "가장 기억에 남는 일은 무엇인가요?"}, - {"speaker": "user", "text": "첫째 아이가 태어난 날이 가장 기억에 남아. 와이프가 아이를 낳고 나서 아이를 보여줬을 때, 정말 감동적이었어."} -] - + # Generate and print the response response = generate_response(input_messages) print("GPT-4 Response:", response) diff --git a/src/utils/openai.py b/src/utils/openai.py deleted file mode 100644 index 0dc486d..0000000 --- a/src/utils/openai.py +++ /dev/null @@ -1,45 +0,0 @@ -import openai -from dotenv import load_dotenv -import os - -# Load environment variables from .env file -load_dotenv() -openai.api_key = os.getenv("OPENAI_API_KEY") - -def generate_response(input_messages): - # Initial system message describing the role and behavior of the GPT - system_message = { - "role": "system", - "content": "이 AI는 노인분들을 잘 이해하며, 진정성이 느껴지는 짧은 답변(한 마디에서 세 마디 사이)과 질문을 한국어로 생성합니다. 공감을 표현하거나 바로 질문하는 형식으로 응답해주세요. 질문 도중 끊기지 않게 해주세요. " - } - - # Format the input for the OpenAI API, starting with the system message - messages = [system_message] - for msg in input_messages: - role = "system" if msg["speaker"] == "ai" else "user" - messages.append({"role": role, "content": msg["text"]}) - - try: - completion = openai.ChatCompletion.create( - model="gpt-4", - messages=messages, - temperature=0.7, # Adjust for creativity; lower for more precise responses - max_tokens=60, # Adjust based on the length of response you expect; keep it short for 1-3 phrases - - ) - - reply = completion.choices[0].message['content'] - return reply - except Exception as e: - print(f"An error occurred: {e}") - return None - -# Example input -input_messages = [ - {"speaker": "ai", "text": "가장 기억에 남는 일은 무엇인가요?"}, - {"speaker": "user", "text": "첫째 아이가 태어난 날이 가장 기억에 남아. 와이프가 아이를 낳고 나서 아이를 보여줬을 때, 정말 감동적이었어."} -] - -# Generate and print the response -response = generate_response(input_messages) -print("GPT-4 Response:", response) From daef0a53c4b871d8bb489810932c174b437c327e Mon Sep 17 00:00:00 2001 From: Hana Oh <108045487+hanaisreal@users.noreply.github.com> Date: Thu, 15 Feb 2024 13:10:34 +0000 Subject: [PATCH 7/7] fix: bug on response --- src/openai/utils.py | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/src/openai/utils.py b/src/openai/utils.py index a12330b..028c77c 100644 --- a/src/openai/utils.py +++ b/src/openai/utils.py @@ -6,25 +6,18 @@ load_dotenv() openai.api_key = os.getenv("OPENAI_API_KEY") - -# Example input -input_messages = [ - {"speaker": "ai", "text": "가장 기억에 남는 일은 무엇인가요?"}, - {"speaker": "user", "text": "첫째 아이가 태어난 날이 가장 기억에 남아. 와이프가 아이를 낳고 나서 아이를 보여줬을 때, 정말 감동적이었어."} -] -# input_messages2 = [ -# {"speaker": "ai", "text":"노인 일자리에 참여하게 된 동기가 있나요?"}, -# {"speaker": "user", "text": "일자리에 참여하기 전까지 집에서 살림만 하면서 살았어요. 자식들을 다 키워놓고 남편과 집에만 있으니 할 일이 없잖아요. 그래서 무료함을 느끼던 차에 집 근처를 지나다니다가 군포시니어클럽 사무실이 보여서 무작정 들어가서 물어봤어요. 상담을 한 후에 실버급식도우미 자리가 있다고 해서 일을 시작하게 됐어요."} -# ] - def generate_response(input_messages): + # Initial system message describing the role and behavior of the GPT system_message = { "role": "system", - "content": "당신은 노인분들을 잘 이해하며, 진정성이 느껴지는 짧은 답변(한 마디에서 세 마디 사이)과 질문을 한국어로 생성합니다. 공감을 표현하거나 바로 질문하는 형식으로 응답해주세요." + "content": "이 AI는 노인분들을 잘 이해하며, 진정성이 느껴지는 짧은 답변(한 마디에서 세 마디 사이)과 질문을 한국어로 생성합니다. 공감을 표현하거나 바로 질문하는 형식으로 응답해주세요." } - - # Correctly format the input for the OpenAI API - messages = [system_message] + input_messages # This line combines the system message with the input messages + + # Format the input for the OpenAI API, starting with the system message + messages = [system_message] + for msg in input_messages: + role = "system" if msg["speaker"] == "ai" else "user" + messages.append({"role": role, "content": msg["text"]}) try: completion = openai.ChatCompletion.create( @@ -32,6 +25,7 @@ def generate_response(input_messages): messages=messages, temperature=0.7, # Adjust for creativity; lower for more precise responses max_tokens=60, # Adjust based on the length of response you expect; keep it short for 1-3 phrases + stop=["\n", "user:"], # Stop generating if it encounters these, to keep responses brief ) reply = completion.choices[0].message['content'] @@ -39,7 +33,13 @@ def generate_response(input_messages): except Exception as e: print(f"An error occurred: {e}") return None - + +# Example input +input_messages = [ + {"speaker": "ai", "text": "가장 기억에 남는 일은 무엇인가요?"}, + {"speaker": "user", "text": "첫째 아이가 태어난 날이 가장 기억에 남아. 와이프가 아이를 낳고 나서 아이를 보여줬을 때, 정말 감동적이었어."} +] + # Generate and print the response response = generate_response(input_messages) print("GPT-4 Response:", response)