bing写的一段python程序

发布时间 2023-03-24 22:15:34作者: He_LiangLiang

 

 

让ai写一个 和 chatgpt交互的程序。用户在控制台输入内容来交互。

程序不一定能正常运行,但是可以参考

如果prompt参数长度过长,可以将其分成多个部分,然后将每个部分作为单独的prompt发送到OpenAI API。这样可以避免出现过长的prompt导致API请求失败的情况。以下是修改后的代码:

import openai
import pandas as pd
import datetime

openai.api_key = "YOUR_API_KEY"

def chat_with_chatgpt(prompt):
    response = openai.Completion.create(
      engine="text-davinci-002",
      prompt=prompt,
      max_tokens=1024,
      n=1,
      stop=None,
      temperature=0.5,
    )

    message = response.choices[0].text.strip()
    return message

def save_chat_history(chat_history):
    current_time = datetime.datetime.now().strftime("%Y-%m-%d %H-%M-%S")
    file_name = f"chat_history_{current_time}.xlsx"
    df = pd.DataFrame(chat_history, columns=["User", "ChatGPT"])
    df.to_excel(file_name, index=False)

chat_history = []
while True:
    user_input = input("请输入您的问题:")
    if user_input == "0":
        save_chat_history(chat_history)
        break
    prompt_parts = [user_input[i:i+256] for i in range(0, len(user_input), 256)]
    chat_history.append([user_input, chat_with_chatgpt("\n".join(prompt_parts))])
    print(chat_history[-1][1])
这段代码将prompt参数分成多个部分,每个部分的长度为256个字符。然后将每个部分作为单独的prompt发送到OpenAI API。这样可以避免出现过长的prompt导致API请求失败的情况。这段代码可以在Python环境中运行,需要安装OpenAI API和Pandas库。