我正在尝试使用 python 中的 openai 来翻译文本。我正在使用 gpt-3.5-turbo。我编写了一个函数来帮助我进行翻译,它正在正确执行和工作,但给了我比我需要的更多的输出。这是编写的函数:
def 翻译文本(文本、源语言、目标语言): Prompt = f“将以下‘{source_language}’文本翻译为‘{target_language}’:{text}”
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": "You are a helpful assistant that translates text."},
{"role": "user", "content": prompt}
],
max_tokens=150,
n=1,
stop=None,
temperature=0.5,
)
translation = response.choices[0].message.content.strip()
return translation
下面我将调用该函数并设置输出:
slide = presentation.slides.add_slide(slide_layout)
shapes = slide.shapes
answers = [row[3], row[4], row[5], row[6]]
body_shape = shapes.placeholders[1]
tf = body_shape.text_frame
t0 = translate_text(answers, 'auto', 'fr').translate(answers[0])
tf.text = "A. " + answers[0] + " <-- Translation --> " + ''.join([str(t0)])
slide_count += 1
print(t0)
我的输出如下所示:
A.巴拉特暴徒 <-- 翻译 --> ['巴拉特暴徒', '印度海盗', '印度斯坦暴徒', 'Combattants de la mer']
如何删除列出的其他选项。 期望的输出是: A.巴拉特暴徒 <-- 翻译 --> 巴拉特暴徒
我尝试修改该功能,但没有成功。我尝试修改函数中的 return 语句,但也没有成功。
最佳答案
可能尝试返回一个列表,其中包含您尝试的上一个返回值的第一个值。示例: previouslist = ['Thugs de Bharat', 'Pirates de l'Inde', 'Thugs de Hindostan', 'Combattants de la mer'] -> [previouslist[0]] 。
您可以尝试这种方法,但是去掉其他值,甚至根本使用 OpenAI 进行翻译都不是一个好主意。更好的想法是使用 API 进行翻译,您可以使用 python3
中的 requests
模块来实现。
关于python - 使用 openai 翻译文本的程序。程序成功翻译了文本,但输出中给出的信息多于所需的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76701626/