我的Python脚本编译并成功运行。它创建输出文件 (edited.txt),但不会向该文件写入任何内容。 API 仪表板显示没有使用情况,所以我猜测脚本从未成功调用 API。但是,我没有收到任何错误代码。
我正在编写一个 Python 脚本来从文件中读取文本块。文本块由两部分组成;一个提示,然后是一个 2,000 个令牌(大约)的文本正文。然后该脚本应该将该文本块传递给 OpenAI API 并将响应写入名为“edited.txt”的文件
我正在帮助 100 Devs 训练营将他们的视频脚本转换为 HTML 文档,以便盲人和视障人士可以浏览视频脚本。我已经编写了三个 Python 脚本......
此脚本的目的是在我手动编辑和添加 HTMl 格式之前对原始转录文本进行第一次编辑。
(这是输入到此脚本的文本文件内容的示例)
格式:
提示文本:原始转录文本
提示文本:原始转录文本
示例:
担任软件开发人员。您的工作是修改以下文本以使其更具可读性,同时保留任何代码语法:我们回来了,又做了一次,又做了一次。我们走吧。仅手指。嗨,早上好。下午好。晚上好。无论你来自哪里。希望你们一切都好。欢迎大家回来。 ...
担任软件开发人员。您的工作是修改以下文本以使其更具可读性,同时保留任何代码语法:如果您从未接触过代码,那么很多这样的东西一开始可能会是一种真正的折磨。所以我们这里有来自各个领域的人。我们已经有人喜欢构建全栈应用程序,他们来这里是为了学习有助于他们找到工作的东西。 ...
from flask import Flask, request, redirect, url_for, render_template
import os
from dotenv import load_dotenv
import openai
import json
load_dotenv()
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
MODEL_ENGINE = "gpt-3.5-turbo"
app = Flask(__name__)
@app.route('/', methods=['GET', 'POST'])
def upload_file():
if request.method == 'POST':
file = request.files['file']
if file:
data = file.read().decode('utf-8')
blocks = data.split('\n\n')
edited_text = ''
for block in blocks:
try:
response = openai.chat.completions.create(
model=MODEL_ENGINE,
messages=[{"role": "user", "content": block}],
max_tokens=4000,
)
edited_text += response.choices[0].text.strip() + '\n\n'
except Exception as e:
print(f"An error occurred: {e}")
with open('edited.txt', 'w', encoding='utf-8') as f:
f.write(edited_text)
return render_template('upload.html')
if __name__ == '__main__':
app.run(debug=True, port=8080)
这是我第一次访问OpenAI API。而且我是盲人,所以访问调试器很棘手。从我可以访问的内容中,我听到 GET 和 POST 请求的 200 响应代码。但我可能无法访问某些内容。
非常感谢您提供的任何帮助!
阅读所有可用的 OpenAI 文档
检查终端中的 Flask 事件(全部返回 200)
尝试在 VS Code 中使用 Copilot
已验证的 .env 文件与格式正确的 API 密钥位于同一目录中。
检查 API 仪表板以验证密钥是否处于活动状态、具有权限并且显示没有使用情况
已验证的脚本正在按预期创建输出文件,但未写入它。
我也是 GPT 新手,但是在我这边运行您的代码时,我收到错误“选择对象没有属性文本”
edited_text += response.choices[0].text.strip() + '\n\n'
所以我用
替换了代码edited_text += response.choices[0].message.content.strip() + '\n\n'
我也没有从 request.files 访问文件,而是这样做了
file = "Hi I am the text if you read this message please respond with I red you message \n\n Hi I am the text if you read this message please respond with I red your 2nd Message"
if file:
data = file
blocks = data.split('\n\n')
edited_text = ''
代码现在运行良好,没有任何错误。
openai.chat.completions.create 方法是为基于聊天的交互量身定制的。它旨在维护一系列消息的上下文,使其适合创建对话式人工智能。因此,如果您不打算构建对话 AI,请使用以下代码
response = client.completions.create(
model="gpt-3.5-turbo-instruct",
prompt="Write a tagline for an ice cream shop."
)
这是一个很好的做法