【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 の非同期実行の実装について記述しました。マニアックな内容なため、必要な方々が想定できませんが、少しでもお役に立てれば幸いです。

この記事が気に入ったらサポートをしてみませんか?