作者:来自 Elastic Zing Zai
我们如何基于使用 Elasticsearch 丰富的语音对语音交互为护理人员构建 AI 助手。
Care 是一款面向护理人员的 AI 助手。它是 Elastic 团队在亚太地区首届 OpenAI 黑客马拉松上构建的原型,使用:
- OpenAI 的实时 API(OpenAI’s Realtime API),用于快速语音对语音交互
- Elasticsearch,用于丰富提示,提供私人医疗知识和敏感护理说明
- 用于护理协调的代理
在本博客中,我们将介绍它的工作原理和功能。点击原型可在此处找到,Github 项目可在此处找到。
OpenAI Realtime API
在 Realtime API 发布之前,要构建语音转语音应用程序,开发人员必须自己手动连接系统。一个典型的例子包括:
- 捕获和转录语音(音频转文本):检测某人何时开始和停止说话,然后使用 OpenAI Whisper 将捕获的音频转录为文本。
- 生成响应(文本转文本):使用 OpenAI GPT-4 处理转录的文本以生成响应。
- 转换为语音(文本转音频):使用 OpenAI 的文本转语音模型将响应文本转换为音频并播放。
该过程很慢,反应速度不够快,无法实现自然交互。此外,捕获和转录语音不会包含太多细节和细微差别,因此很难建立流畅的对话体验。
OpenAI 的 Realtime API 发布后,可以直接从音频输入(或其他输入方式,如文本或视觉)生成语音。交互是实时发生的,不需要经过上述 3 个步骤,从而减少了延迟。
那么... 这一切中的 Elastic 部分在哪里呢?
我们都知道,搜索是使用 OpenAI 等大型语言模型 (large language models - LLM) 的关键基础设施,它能够实现精确高效的搜索功能,从而检索生成 AI 体验的相关数据。Elastic 提供了一个实时搜索 AI 平台,可以补充 OpenAI 的实时 API,通过快速、相关的混合搜索功能在数百万个文档中实现动态、交互式的用户体验。
semantic_text 和 ELSER 用于语义搜索
Care 使用 semantic_text 将特定的医疗保健文档导入 Elastic。semantic_text 会自动将长段落分成较小的部分,并使用 ELSER 推理端点为文本块内容生成嵌入。这提高了搜索性能,更重要的是,通过仅返回最相关的块,提高了搜索相关性。
用于混合搜索的检索器
Care 利用 Elastic 最新的检索器(在 8.16 中正式发布),在单个 _search 调用中拥有多阶段检索管道,并通过函数调用将其集成到 OpenAI 的 Realtime API 中。检索器旨在帮助开发人员简化混合搜索开发。
`1. const query = {
2. "retriever": {
3. "rrf": {
4. "retrievers": [
5. {
6. "standard": {
7. "query": {
8. "nested": {
9. "path": "content.inference.chunks",
10. "query": {
11. "sparse_vector": {
12. "inference_id": "my-elser-endpoint",
13. "field": "content.inference.chunks.embeddings",
14. "query": search_term
15. }
16. },
17. "inner_hits": {
18. "size": 2,
19. "name": "content",
20. "_source": [
21. "content.inference.chunks.text"
22. ]
23. }
24. }
25. }
26. }
27. },
28. {
29. "standard": {
30. "query": {
31. "match": {
32. "title": search_term
33. }
34. }
35. }
36. }
37. ]
38. }
39. }
40. }`代码解读
在上面的查询中,我们利用了倒数排序融合 (reciprocal rank fusion - RRF) 检索器来执行混合搜索(词汇搜索 + ELSER 稀疏向量嵌套搜索)。API 可组合且灵活,使我们能够构建管道并将不同的检索策略无缝集成到这些管道中。如有必要,还可以添加更高级的技术,例如文本相似性重新排序检索器。
结论
随着 LLMs 的最新进展,我们正在超越传统基于文本的聊天机器人的界限。现在,我们可以利用并受益于可以跨语言和模态进行翻译、理解和交互的交互式语音到语音界面。搜索仍然是生成式 AI 体验的关键基石,它以真实信息为基础做出响应并有助于防止幻觉。
Elasticsearch 包含许多新功能,可帮助您为您的用例构建最佳搜索解决方案。深入了解我们的示例笔记本以了解更多信息,开始免费云试用,或立即在你的本地机器上试用 Elastic。