Skip to content

ease your way to work with openai, gemini and anthropic api

License

Notifications You must be signed in to change notification settings

washanhanzi/await-openai

Repository files navigation

about this workspace

ease your way to work with openai, gemini and anthropic api

Warning

wip, not stable.

use full version number as dependency.

breaking change may happen in minor version update until 1.0.0.

await-openai

only support chat completion for now

compare to async-openai

  • dedicate completion chunk type
  • only types

features

tiktoken

tokens usage calculation for openai api.

support tools tokens usage estimation and image tokens usage calculation.

tool

blazing fast serilization compared to openai-func-enums

claude

transform openai's request to anthropic's request.

transform authropic's response to openai's response.

benchmark

Test Category Test Performed Time (ns or µs) Outliers
Deserialize Default Request 413.61 ns - 415.89 ns
Deserialize Default Request with async-openai 432.63 ns - 433.11 ns 6 (6.00%): 2 low mild, 2 high mild, 2 high severe
Deserialize Image Input Request 1.1024 µs - 1.1066 µs 5 (5.00%): 1 low severe, 1 low mild, 2 high mild, 1 high severe
Serialize Default Request 477.29 ns - 479.68 ns
Serialize With async-openai builder pattern 847.53 ns - 851.97 ns 6 (6.00%): 1 low mild, 3 high mild, 2 high severe
Serialize Function Tool 910.31 ns - 912.73 ns 13 (13.00%): 5 high mild, 8 high severe
Serialize Function Tool with Func Enum 6.4547 µs - 6.4676 µs 8 (8.00%): 6 high mild, 2 high severe

async-gemini

async-claude