・画像を除外するアルゴリズムの検討
最初にスクリーンショットをとり、フォントサイズを変更してもう一度スクリーンショットをとります。
書籍中の画像は変わらないから、変わらないもの=画像と判断して除外ないし、グレースケール塗りつぶしができるかもしれません。
・chatGPTのAPI申し込み
どこから申し込みすればいいのかよくわからなかったので右往左往したが、やっと申しこみできました。
・chatGPTサンプルコード
ネットで見つけたサンプルコードでやってみました。
import openai
#APIキーを設定
openai.api_key = ""
#推論を実行
response = openai.Completion.create(
model="gpt-3.5-turbo",
messages=[
{"role": "user", "content": "I would like to start programming, what languages do you recommend?"}
]
)
#ChatGPTの回答を出力
print(response["choices"][0]["message"]["content"])
結果
Traceback (most recent call last):
File "/Users/user/Dropbox/python/source_code/kindle2text/test_chatgpt.py", line 7, in <module>
response = openai.Completion.create(
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/openai/api_resources/completion.py", line 25, in create
return super().create(*args, **kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/openai/api_resources/abstract/engine_api_resource.py", line 115, in create
response, _, api_key = requestor.request(
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/openai/api_requestor.py", line 181, in request
resp, got_stream = self._interpret_response(result, stream)
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/openai/api_requestor.py", line 396, in _interpret_response
self._interpret_response_line(
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/openai/api_requestor.py", line 429, in _interpret_response_line
raise self.handle_error_response(
openai.error.InvalidRequestError: Unrecognized request argument supplied: messages
response = openai.Completion.create
ここが間違いで、正解は以下でした。
response = openai.ChatCompletion.create
chatGPTの回答。
両方のプログラムでは messages というリストを使用していますが、コメントアウトされた部分を除くと、内容は同じです。しかし、ChatCompletion は複数のメッセージを含む会話の形式をサポートしています(例えば、システム、ユーザー、アシスタントとの連続した会話)。
Completion は単一のメッセージに基づく完了を生成するためのものです。
これで、pythonでchatoGPTのAPIを使うプログラムができました。
ただ、処理速度が遅いです。