【ChatGPT】 guidance の非同期実行
API がどのようなエラーが出たかを確認したい場合に、非同期実行などを行うと思います。guidance でもそれが実装されているので、それのやり方を記載しておきます。
非同期実行
非同期実行するには、以下のパッケージが必要になるはずです。
asyncio
tracemalloc
これらが入っていれば以下のように実装すると良いです。
import guidance
import asyncio
import tracemalloc
tracemalloc.start()
async def run_program(program):
res = await program()
return res
guidance.llm = ....
program = guidance("your prompt")
program.async_mode = True
response = asyncio.run(run_program(program))
上記において、guidance.llm = …. の部分は、こちらの記事を参照して設定してください。また、並列計算させるには、
async def run_program(program):
tasks = [program() for i in range(10)]
res = await asyncio.gather(*tasks)
return res
のようにすれば可能です。ただし、並列計算は、配列の順番とか関係なく実行されてしまうと思います。
まとめ
guidance の非同期実行の実装について記述しました。マニアックな内容なため、必要な方々が想定できませんが、少しでもお役に立てれば幸いです。
この記事が気に入ったらサポートをしてみませんか?