hume-python-sdk:轻松集成Hume API,提升Python应用智能
项目介绍
hume-python-sdk 是一个开源的Python软件开发包(SDK),它允许开发者直接在Python应用中集成Hume提供的API服务。Hume AI 是一家专注于情感分析和语音识别的公司,其API能够为应用程序提供情感理解、语音交互等功能。通过hume-python-sdk,开发者可以轻松利用Hume AI的强大功能,为用户提供更加智能和个性化的体验。
项目技术分析
hume-python-sdk 设计上注重易用性和灵活性,它支持多种Python版本和操作系统,包括最新的Python 3.9到3.12版本。该SDK使用了异步编程模型,提供了AsyncHumeClient
,使得API调用不会阻塞程序的主执行流程,这对于需要高并发处理的应用尤为重要。
此外,hume-python-sdk 在版本0.7.0以上进行了重大架构更改,引入了更安全的类型检查和更细粒度的配置选项,同时保留了向后兼容的旧功能。
项目及技术应用场景
hume-python-sdk 主要应用于以下场景:
- 情感分析:利用Hume的Empathic Voice Interface API,开发者可以分析用户的语音情感,从而提供更符合用户情绪的响应。
- 语音识别与交互:通过Expression Measurement API,可以实现对用户语音的识别和交互,适用于智能助手、客户服务机器人等场景。
- 自定义模型:开发者可以使用Hume提供的自定义模型API,为特定需求训练和部署机器学习模型。
项目特点
- 易于集成:hume-python-sdk 提供了简洁的API接口,使得集成过程变得简单快捷。
- 支持异步调用:通过异步客户端
AsyncHumeClient
,可以在不阻塞主线程的情况下进行API调用。 - 类型安全与配置灵活:改进的类型安全性和细粒度配置选项,让开发者能够更安全、更灵活地使用SDK。
- 向后兼容:即使在新版本中进行了架构更改,旧版本的功能仍然被保留,确保了平滑的迁移过程。
- 自动重试与超时设置:SDK内置了自动重试机制和超时设置,提高了API调用的稳定性和可靠性。
以下是详细的hume-python-sdk功能介绍:
异步客户端
import asyncio
from hume.client import AsyncHumeClient
client = AsyncHumeClient(api_key="YOUR_API_KEY")
async def main() -> None:
await client.empathic_voice.configs.list_configs()
asyncio.run(main())
文件操作
使用异步流式写入文件在Python中可能会有些复杂,但aiofiles
库可以简化这一过程。
import aiofiles
from hume import AsyncHumeClient
client = AsyncHumeClient()
async with aiofiles.open('artifacts.zip', mode='wb') as file:
async for chunk in client.expression_measurement.batch.get_job_artifacts(id="my-job-id"):
await file.write(chunk)
命名空间
SDK中的API按照功能进行了命名空间划分,方便开发者使用。
from hume.client import HumeClient
client = HumeClient(api_key="YOUR_API_KEY")
client.expression_measurement. # Expression Measurement相关API
client.empathic_voice. # Empathic Voice相关API
异常处理
所有SDK抛出的错误都将继承自ApiError
类,便于错误处理。
from hume.client import HumeClient
try:
client.expression_measurement.batch.get_job_predictions(...)
except hume.core.ApiError as e:
print(e.status_code)
print(e.body)
分页
分页请求将返回一个SyncPager
或AsyncPager
,可以用来迭代获取数据。
import hume.client
client = HumeClient(api_key="YOUR_API_KEY")
for tool in client.empathic_voice.tools.list_tools():
print(tool)
WebSockets
SDK提供了WebSocket客户端,用于与EVI API和Expression Measurement API交互。
from hume import StreamDataModels
client = AsyncHumeClient(api_key=os.getenv("HUME_API_KEY"))
async with client.expression_measurement.stream.connect(
options={"config": StreamDataModels(...)}
) as hume_socket:
print(await hume_socket.get_job_details())
高级功能
重试机制
SDK内置了自动重试机制,支持指数退避策略。
from hume.client import HumeClient
from hume.core import RequestOptions
client = HumeClient(...)
# 覆盖特定方法的重试设置
client.expression_measurement.batch.get_job_predictions(...,
request_options=RequestOptions(max_retries=5)
)
超时设置
可以配置请求超时时间。
from hume.client import HumeClient
from hume.core import RequestOptions
client = HumeClient(
# 所有超时设置为20秒
timeout=20.0,
)
# 覆盖特定方法的超时设置
client.expression_measurement.batch.get_job_predictions(...,
request_options=RequestOptions(timeout_in_seconds=20)
)
自定义HTTP客户端
可以覆盖HTTP客户端以进行自定义配置。
import httpx
from hume.client import HumeClient
client = HumeClient(
http_client=httpx.Client(
proxies="http://my.test.proxy.example.com",
transport=httpx.HTTPTransport(local_address="0.0.0.0"),
),
)
hume-python-sdk 是一款功能强大、易于集成的Python SDK,适用于希望提升应用智能水平的开发者。通过简单的API调用,您可以为您的应用程序添加情感分析和语音识别功能,为用户提供更加智能和个性化的体验。立即尝试hume-python-sdk,开启智能应用的新篇章!