Python: 如何串接chatGPT? import openai ; res = openai.Completion.create() ; 如何處理unicode?

加入好友
加入社群
Python: 如何串接chatGPT? import openai ; res = openai.Completion.create() ; 如何處理unicode? - 儲蓄保險王

chatGPT.txt的內容如下:
{“openai_apikey” : “sk-jyLz???secret”}
請到OpenAI官網購買api_key,
並小心保存不要外流
內容為json格式
value是自己購買的api_key
請小心不要公開自己買的aip_key

code:

# Note: you need to be using OpenAI Python v0.27.0 for the code below to work
"""
https://platform.openai.com/docs/api-reference/completions/create?lang=python
"""
import openai   # pip install openai
import json

try:
    with open("chatGPT.txt", "r") as json_file:
        data = json.load(json_file)
        openai.api_key = data["openai_apikey"]
except FileNotFoundError:
    print("The file chatGPT.txt does not exist.")

str_prompt = "寫一段for迴圈的python code(包含正確的縮排\t)"
#创建文本生成请求
res=openai.Completion.create(
  model="text-davinci-001",
  #prompt="請翻譯成中文  good morning",
  prompt= str_prompt,
  max_tokens=200,
  temperature=0.2,        # 亂數  0 and 2.
  n=2,                     # 出來的答案數量
  stop="##"
)
print(res)
print(res["choices"][0]["text"])
print(res["choices"][1]["text"])

輸出結果:

Python: 如何串接chatGPT? import openai ; res = openai.Completion.create() ; 如何處理unicode? - 儲蓄保險王

雖然已經提示需要注意縮排
但仍無正確縮排
可能可以試試其他model


openai.Completion.create?

Python: 如何串接chatGPT? import openai ; res = openai.Completion.create() ; 如何處理unicode? - 儲蓄保險王


model=”gpt-3.5-turbo-instruct”
同樣的prompt,
可以正確縮排

Python: 如何串接chatGPT? import openai ; res = openai.Completion.create() ; 如何處理unicode? - 儲蓄保險王

在 OpenAI GPT-3 的文本生成过程中,”temperature” 是一个可配置的参数,用于调整生成文本的随机性。以下是关于这个参数的解释:

  • “temperature” 是一个数值,可以是整数或浮点数。它的范围是 0 到 2。
  • “temperature” 参数的默认值是 1。
  • “temperature” 的作用是控制生成文本的随机性。具体来说:
    • 当 “temperature” 的值较高(例如 0.8),生成的文本将更加随机,包含更多的不确定性和多样性。这意味着生成的文本可能更具创意,但也更难以控制。
    • 当 “temperature” 的值较低(例如 0.2),生成的文本将更加集中和确定性,更趋向于遵循模型的预测趋势。这意味着生成的文本更可控,更符合模型的学习内容。
  • OpenAI 通常建议调整 “temperature” 参数或 “top_p” 参数之一,而不是同时调整两者。这是因为它们都影响文本生成的随机性,同时调整两者可能会导致不符合预期的结果。

总之,”temperature” 是一个用于控制文本生成随机性的参数,可以根据需要调整以获得不同程度的创意和可控性。


print(res["choices"][0]["text"])
生成的res類似:

Python: 如何串接chatGPT? import openai ; res = openai.Completion.create() ; 如何處理unicode? - 儲蓄保險王

"text": "\n\u67d0\u5929\uff0c\u5c0f\u660e\u548c\u5c0f\u83ef\u5546\u91cf\u8981\u53bb"
value為unicode
但無需特別處理
print() 可以將unicode轉為人類看得懂的文字:

Python: 如何串接chatGPT? import openai ; res = openai.Completion.create() ; 如何處理unicode? - 儲蓄保險王

Python会自动将Unicode字符正确解释并在使用print函数时将其转换为人类可读的文本。无需特别处理Unicode字符,Python会处理这些细节,以确保文本以可读的方式呈现给您。

但是,请注意,如果您将文本输出到文件或其他环境中,可能需要根据输出环境的编码要求进行适当的编码/解码处理。在大多数情况下,针对标准输出的print将自动处理这些细节。

也可以用以下方式
將unicode輸出為人類看得懂的txt

Python: 如何串接chatGPT? import openai ; res = openai.Completion.create() ; 如何處理unicode? - 儲蓄保險王

推薦hahow線上學習python: https://igrape.net/30afN

加入好友
加入社群
Python: 如何串接chatGPT? import openai ; res = openai.Completion.create() ; 如何處理unicode? - 儲蓄保險王

儲蓄保險王

儲蓄險是板主最喜愛的儲蓄工具,最喜愛的投資理財工具則是ETF,最喜愛的省錢工具則是信用卡

You may also like...

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *