Qt AI Assistant
利用人工智能提高生产力:专注于编码,而非琐事
Qt AI Assistant可帮助开发者专注于他们最热爱的事情:编程。通过将开发者从编写测试用例、代码文档、技术说明以及样板QML代码等任务中解放出来,Qt AI Assistant为实际编码工作腾出了更多时间。
![best in class qml icon](https://www.qt.io/hs-fs/hubfs/best-in-class_qml.png?width=169&name=best-in-class_qml.png)
一流的QML支持
Qt AI Assistant可连接到您最喜欢的大语言模型(LLM),并通过专为QML优化的微调Llama模型,提供了顶尖的QML支持。该模型基于由经验丰富的QML开发者创建并验证的4000多个QML应用程序训练而成,确保专业级开发体验。
![test cases and docs icon](https://www.qt.io/hs-fs/hubfs/test_cases_and_docs.png?width=169&name=test_cases_and_docs.png)
测试用例与文档
Qt AI Assistant针对Qt Test语法进行了优化,可轻松为代码的任何部分提供全面的单元测试和清晰的文档。
![next-gen expertise icon](https://www.qt.io/hs-fs/hubfs/next-gen_expertise.png?width=169&name=next-gen_expertise.png)
新一代专业知识
无论是QML、C++还是Python,通过选择部分代码,Qt AI Assistant可以帮助您解释、重构和优化代码,并找到最新、最先进的功能,让您的应用程序更上一层楼。
AI驱动效率,人类激发创意
可选的自动补全功能
Qt AI Assistant可在您键入代码时自动补全代码,提示建议可被全盘接受、逐行接受或逐字接受。如果您不想消耗LLM令牌或不想被Gen AI干扰,可以通过使用键盘快捷键或提示来按需触发代码补全功能。
自由接入您喜爱的大语言模型
Qt AI Assistant默认配置为连接Meta的Llama系列、Anthropic的 Claude 3.5 Sonnet或OpenAI的GPT4o等大语言模型。不过,您也可以自由连接任何商业云服务或自托管的大语言模型。您还可以针对不同的用例使用不同的大语言模型:如果通用模型无法满足需求,您可以根据相关用例选择更专业的模型。
单元测试
您可以利用Qt AI Assistant创建单元测试用例来快速提升代码测试覆盖率。只需选择需要测试的QML组件、方法或类,即可生成多个适用于Qt Test项目的测试用例。
代码文档
通过要求Qt AI Assistant为代码的任何部分生成文档,提高代码的可维护性和协作性,帮助开发者理解代码的目的、结构和功能。
![developers icon](https://www.qt.io/hs-fs/hubfs/developers.png?width=75&height=74&name=developers.png)
针对开发者
专注于为跨平台应用程序创建独特且引人入胜的用户体验,而生成式AI负责样板UI代码、测试用例和文档。Qt AI Assistant通过示例和解释为您编写QML代码提供帮助。
![managers icon](https://www.qt.io/hs-fs/hubfs/r%26d_managers.png?width=75&height=74&name=r%26d_managers.png)
针对研发经理
按需接入最佳的大语言模型。在提供开箱即用的卓越QML/Qt Quick编码性能的同时,Qt AI Assistant还能根据任务和编程语言智能地路由用户请求,以使用更专业或更具成本效益的大语言模型。
![product managers icon](https://www.qt.io/hs-fs/hubfs/product_managers.png?width=75&height=74&name=product_managers.png)
产品经理
通过在安全的大语言模型上自动创建软件,保持并扩大您的竞争优势。Qt AI Assistant通过在本地或您选择的云平台上运行您自己的大语言模型,确保您的代码不会因意外或通过大语言模型培训而泄漏。
了解更多
阅读其他资料,了解有关Qt AI Assistant的更多信息。
常见问题
使用Qt AI Assistant需要商业许可证吗?
需要高级Qt开发许可证才能使用Qt AI Assistant。Qt AI Assistant可与Qt for Application Development Enterprise版、任何Qt for Device Creation版本、任何Small Business版本或Education license for Qt Development一起使用。
为什么我不能在Qt for Application Development Professional许可证下使用Qt AI Assistant?
Qt AI Assistant是一项高级生产力增强工具,与高级Qt开发许可证捆绑提供。Qt for Application Development Professional是我们入门级开发者许可证,其功能范围较为基础。
使用Qt AI助手是否需要大型语言模型(LLM)?
是的,没错。Qt AI Assistant允许客户根据业务模型、编程语言、部署模型和透明度要求选择LLM。此外,运行LLM会产生显著的基础设施成本。将LLM云托管排除在Qt AI Assistant范围之外,使我们能够将Qt AI Assistant捆绑提供给高级Qt开发许可证持有者,而无需单独订阅。
我在哪里可以获得用于 Qt AI Assistant 的大型语言模型?
有三种方法可以将大型语言模型连接到 Qt AI Assistant:
- 订阅大型语言模型云服务,例如Anthropic或OpenAI。
- 在您的私有云中运行大型语言模型,例如Llama 3.3 70B和Code Llama 13B。
- 使用Ollama技术在您的本地计算机上运行语言模型,例如CodeLlama 7B-hf或CodeLlama 13B-hf。
如果您在私有云中运行LLM时需要帮助,我们可以推荐我们的专业服务合作伙伴。
Qt是否使用我的数据来训练大型语言模型(LLM)?
不会,除非您以书面形式明确要求Qt公司这样做,否则Qt公司不会使用任何LLM的输入或输出来训练任何模型。Qt公司完全不参与实际输出的生成。Qt Creator中的Qt AI Assistant直接与LLM进行通信。
法律上的表述如下:
“为客户生成的输出结果将被视为客户的输出结果,且Qt公司不得主张对客户的输出结果享有任何权利、所有权或权益。 尽管有前述规定,输出结果中包含的任何Qt公司知识产权仍是Qt公司及其许可方的知识产权,并受限于关于该等知识产权的相关条款和条件。客户确认,输出结果是作为对 Qt AI工作的非排他性回应而生成,因此基于输入内容或使用背景,也可能为其他Qt AI客户生成相同或类似的输出结果或其他建议。关于Qt AI Assistant,输出结果是通过与第三方软件结合使用Qt AI Assistant产生的,因此可能受第三方权利的约束,包括开源软件许可证。 因此,客户必须确保Qt AI Assistant生成的输出结果不违反第三方权利,如开源软件许可证。”
Qt AI Assistant 可以为 Qt Widgets 创建代码或生成与Qt 5版本兼容的代码吗?
我们已经针对QML代码补全对Code Llama 13B模型进行了微调。此外,我们还针对QML提示对Llama 3.3 70B模型进行了微调,以便提供专家建议。我们尚未针对Qt Widget或与Qt 5兼容代码优化任何大型语言模型。然而,未经调优的CodeLlama 13B基础模型对生成符合Qt 5标准的QML代码方面的性能为68%。相比之下,未经调优的同一基础模型对生成符合Qt 6标准的QML代码方面的性能为 66%,调优后的模型版本为79%。
我如何试用Qt AI Assistant?
试用Qt AI Assistant非常简单:
- 安装或升级Qt Creator至Qt Creator 15.0.1或更新版本(否则,Qt AI Assistant将无法工作)。
- 在Qt Creator的扩展设置中,确保勾选了“Use external repository”(使用外部存储库)。
- 在Qt Creator中,进入扩展视图并选择AI Assistant。
- 安装Qt AI Assistant插件(这是插入到您的IDE中的组件)。
- 接受互联网访问和AI Assistant Server的安装(这是在后台与LLM通信的组件)。
- 选择安装范围(个人用户/所有用户)并启用扩展在启动时加载。
- 连接到至少一个大型语言模型(LLM)。
注意:您需要拥有有效的高级Qt开发许可证(Qt for AD Enterprise或更高版本)。如果您没有,可以注册一个Qt开发评估许可证。
为什么我在Qt Creator的扩展中看不到Qt AI Assistant?
默认情况下,Qt Creator不会从外部源提取新扩展。您需要通过以下方式激活外部内容提取:
1) 单击设置图标,打开Qt Creator扩展设置
2) 勾选“Use External Repositories”(使用外部存储库)复选框。