智能文档助手,让你轻松快速找到文档解答
目录
- 引言
- Doc Assistant的背景
- Doc Assistant的功能和特点
- Doc Assistant在各个平台上的使用示例
- 适用于开发人员的Doc Assistant功能
- 使用的Azure资源以及技术细节
- 依赖性注入的实现和挑战
- 存储逻辑和文件管理的灵活性
- 基于令牌数量的处理性能优化
- 用户体验的改进和优化
- Doc Assistant的未来发展计划
- 结论
- 致谢
引言
大家好!感谢大家今天的到来,也感谢微软的邀请让我们有机会在这个令人激动的活动中展示我们的应用。我作为四人团队的一员,与我的队友Yuri、Alexander和Margas一起参加了微软团队的全球编程马拉松比赛。我们想出了一个想法,创建了一个应用,旨在让专业人士和个人能够轻松处理文档,让他们的专业和个人生活更加便捷。下面是我们的应用——Doc Assistant,它是您处理文档并立即获取答案的捷径。
Doc Assistant的背景
理解阅读冗长的手册和技术文档可能会很乏味,也是一项耗时的任务。为了简化每天阅读、分析和搜索答案的繁琐工作,我们决定创建一个应用来帮助您简化日常的例行文本和技术文档工作。我们的应用基于人工智能技术,您可以轻松上传任何格式的正在处理的文档,并向应用提出与该文档相关的具体问题,即可在几秒钟内获得准确的答案。目前,Doc Assistant可以处理PDF、Microsoft Word和Excel文件、文本文件、图片文件(如jpg、jpeg、PNG等格式),以及Markdown文件和GitHub代码库。此外,Doc Assistant还支持在Microsoft Teams、Facebook Messenger、Telegram Messenger和Skype等流行的通信平台上使用。
Doc Assistant的功能和特点
Doc Assistant的主要功能和特点包括:
- 跨多个平台的使用:您可以在Microsoft Teams、Facebook Messenger、Telegram Messenger和Skype等流行的通信平台上使用Doc Assistant。
- 多格式文档支持:Doc Assistant可以处理PDF、Microsoft Word和Excel文件、文本文件、图片文件以及Markdown文件和GitHub代码库等多种格式的文档。
- 多语言支持:无论您是德语、法语、西班牙语还是任何其他语言,您都可以向Doc Assistant提出任何问题,并获得准确的答案。
- 快速准确的答案:Doc Assistant利用人工智能技术,可以在几秒钟内提供准确的答案,无需手动翻译或阅读冗长的手册和文档。
- 个人和专业使用:无论您是律师、技术支持工程师、开发人员还是其他需要处理各种文档的专业人士,Doc Assistant都能为您提供帮助。
Doc Assistant在各个平台上的使用示例
让我们来看一下在不同平台上使用Doc Assistant的示例:
💡 示例 1:在Microsoft Teams中上传和查询文档
首先,让我们看一下在Microsoft Teams中上传和查询文档的示例。假设您要处理一份银行协议的文档。您可以通过拍照或上传照片的方式将该文档上传给Doc Assistant,并向其提出关于协议终止条件的问题。Doc Assistant将可以以您的母语回答您的问题,从而避免了手动翻译的麻烦。
💡 示例 2:通过链接分享PDF文档并提问
下一个示例是通过链接分享PDF文档,并向Doc Assistant提出相关问题的示例。假设您有一份关于学生签证的PDF文件,您可以在对话中分享该文件的链接,并询问获得该签证所需的文件清单。Doc Assistant将根据您的问题,准确地提供您所需的文件清单。
💡 示例 3:上传和查询Microsoft Word文档
在第三个示例中,让我们来看一下在Microsoft Word文档中使用Doc Assistant的示例。您可以将Microsoft Word文档上传给Doc Assistant,并向其提问,比如咨询在协议中是否允许起诉的条款。Doc Assistant会给出精确的答案,告诉您是否需要得到出租方的同意才能起诉。
通过上述示例,我们可以看到无论是在Microsoft Teams、Facebook Messenger、Telegram Messenger还是Skype上使用,Doc Assistant在处理不同类型的文档时都能提供准确的答案和方便的查询。
适用于开发人员的Doc Assistant功能
作为开发人员,您也可以从Doc Assistant的功能中受益。
首先,您可以将您的Markdown文件和GitHub代码库链接与Doc Assistant共享。这样,您可以向Doc Assistant提问关于模块用途、安装过程等方面的问题,并获得准确的指南和步骤。
此外,为了提高性能,Doc Assistant还使用了Azure开放AI模型来对文档进行处理。这些模型能够从图像或文件中提取和解析文本,并将其保存在存储账户中,以供Doc Assistant使用。同时,为了控制资源的使用,每个用户的文档在服务器上保留7天后将被自动清除。
Doc Assistant不仅可以帮助开发人员更方便地处理文档,还可以为其他专业人士提供相同的便利。
使用的Azure资源以及技术细节
在开发过程中,我们使用了多个Azure资源,包括Web API、Messaging Cop以及存储账户。Web API在应用中担任主要的业务逻辑处理角色,而Messaging Cop则负责将来自Microsoft Teams、Facebook、Telegram和Skype等平台的消息和文件发送到Azure Bot资源上。Azure Bot充当适配器的作用,将这些消息转换为B框架可以理解的格式。
为了处理GitHub上的文档,我们使用了GitHub API来从公共代码库中检索必要的信息。同时,我们还使用了Azure Form Recognition AI模型来从图像或文件中提取文本内容,并存储在存储账户中,以供Doc Assistant使用。
为了实现存储逻辑和文件管理的灵活性,我们使用了依赖性注入和Depy框架。这使我们能够重写存储逻辑,根据需要实现不同的存储接口。
要优化性能,我们使用了C#版本的深度开发者工具库(C# Deep Dev Tokenizer Library)。该库可以计算每个请求的令牌数量,并允许用户监视其令牌使用情况和文档页面处理情况。
通过上述Azure资源的使用以及技术细节的实现,我们成功地开发并部署了Doc Assistant应用。
依赖性注入的实现和挑战
在实现依赖性注入过程中,我们遇到的一个挑战是没有内置工具可以在代码中复用Azure开放AI模型的配置。为了解决这个问题,我们创建了一个类似的C#模型,并将配置序列化到该模型中,以便于我们将其集成到我们的应用中。这样一来,不同的人可以分别处理这些任务,而不会互相干扰。
同时,我们也面临着处理上传文档时的存储逻辑和文件管理的挑战。为了解决这个问题,我们重新实现了存储逻辑,并使用依赖注入来实现灵活的存储接口。这样,我们可以基于文件的存活时间来自动清除存储账户中的文件,并且用户也可以方便地清除自己的文件。
通过解决这些挑战,我们能够提供更好的用户体验和优化的功能。
存储逻辑和文件管理的灵活性
为了实现存储逻辑和文件管理的灵活性,我们使用了P框架和依赖注入。P框架提供了灵活的存储接口,可以根据需要重新实现存储逻辑。我们利用存储接口的灵活性,实现了根据文件的存活时间自动清除存储账户中的文件的功能。用户也可以通过在聊天中输入"clear"命令或点击相应的建议消息来清除自己的文件。
通过这种灵活性的实现,我们可以更好地管理文件并提高用户体验,同时避免资源的耗尽。
基于令牌数量的处理性能优化
为了优化处理性能,我们使用了C#版的深度开发者工具库。该库可以计算每个请求的令牌数量,并让用户能够监视其令牌使用情况和文档页面处理情况。目前,我们对每个请求的令牌限制为6,000个令牌,但在未来的版本中,我们计划取消这个限制或使用其他技术来提高性能。
通过基于令牌数量的性能优化,我们可以更有效地处理大量的文档,并提高用户的体验。
用户体验的改进和优化
为了改进用户体验,我们提供了一些功能上的改进和优化。首先,我们为每条消息提供了一些建议,以便用户在询问文档相关问题时能够方便地选择。这些建议将在聊天窗口中对用户进行展示,使其更易于访问。
除了建议功能,我们还提供了帮助卡片中的"清除"命令,以方便用户清除自己的文件。用户可以通过点击相应的建议消息或在聊天中输入"clear"来清除文件。
通过改进和优化用户体验,我们努力提供更高效、便捷的文档处理服务。
Doc Assistant的未来发展计划
在未来的发展计划中,我们希望扩展Doc Assistant的功能,使其适用于更多的平台,并增加处理更大文档和同时处理多个文档的能力,从而使我们的产品对用户更加有用。
我们计划将Doc Assistant的功能扩展到其他流行的通信平台上,并创建一个Web服务,以提供更广泛的文档处理功能。同时,我们还希望通过改进性能和使用更多的技术,来提供更好的用户体验。
我们已经加入了微软的创业者中心,这为我们提供了新的思路和项目发展的机会。我们相信,未来的发展中,我们将会遇到更多有趣的机会和成就。
结论
在本次演示中,我们向大家展示了我们的文档处理应用——Doc Assistant,并介绍了它的功能和特点。通过使用AI技术和Azure资源,我们能够提供快速准确的答案,并改善用户的文档处理体验。
最后,我们要再次感谢大家的关注和支持,正是有了这些支持,我们才能成功发布我们的应用,并在Facebook、Teams、Telegram等平台上推出。同时,我们还要感谢与我们合作开发和测试项目的团队成员,以及他们在数字化文件和组织方面的贡献。
致谢
我们要特别感谢微软举办这次活动,并给予我们的关注和支持。同时,我们还要感谢我们的团队成员Yuri和Alexander,在开发和测试过程中的不断努力和帮助。
在此,我代表整个团队再次向大家表达最诚挚的感谢,感谢你们在这个项目中对我们的关注和支持。我们相信,未来将会有更多有趣的机会和挑战等着我们,我们期待着与大家共同分享更多的成就和进步。
谢谢大家!