2026年7月9日 周四晚上19:30,报名腾讯会议了解“如何构建自进化的动态知识库(Brain)”(限30人)
免费POC, 零成本试错
FDE知识库

FDE知识库

学习大模型的前沿技术与行业落地应用


收藏

Claude 3.7 Sonnet 使用结论

发布日期:2025-03-07 08:07:49 浏览次数: 2512
作者:每周见闻和想法

微信搜一搜,关注“每周见闻和想法”

推荐语

探索Anthropic最新AI助手Claude 3.7 Sonnet的实用能力。

核心内容:
1. Claude 3.7 Sonnet版本更新测试
2. 通过手绘UI图生成iOS和安卓代码的过程
3. 代码优化和维护性的提升建议

杨芳贤
53AI创始人/腾讯云(TVP)最具价值专家

前言

2 月 24 日 Anthropic 发布了 Claude 3.7 sonnet,之前使用 claude 3.5 sonnet 的时候就很惊艳,所以迫不及待的想试一下 claude 3.7 sonnet 的效果。

正文

测试方法

提供一张手绘的 UI 图给 Claude 3.7 sonnet,让它生成对应的代码。这里分别让他生成 iOS 和安卓的代码。 iOS 选择了 SwiftUI,安卓选择了 kotlin + compose 。

手绘 UI 图


手绘图如上图,想要的效果就是左侧是消息列表,右侧是对话的详情页。

iOS 测试效果

第一轮会话

问:上传图片后,告诉 claude 根据这张 UI 图,用 SwiftUI 实现这个 UI 。

 

claude 实现了这个 UI,左侧是列表,右侧是对话。列表和对话完全没有关系,就是按照 UI 图写了界面。

第二轮会话

问:实现的不好,我希望是使用导航栏的形式。左侧是列表页,点击左侧的某一项,右边会打开详情页展示详细内容。

 

claude 确认了需求,基于导航栏的主从式布局,使用NavigationSplitView实现了UI,列表和详情页也有了对应关系。

第三轮会话

问:我希望 detailview里的数据都是从外面带过来的,比如 name1 、 name2和具体的聊天内容都是在打开页面时带进来。

 

claude 确认了需求你希望DetailView能够接收外部传入的数据。我们可以修改代码,让DetailView接收更多参数,包括消息数据。
实现了detailView 接收数据的能力,并且自定义了isFromCurrentUser属性来区分消息是否是我发送的,另外还增加了如果聊天选项没有消息,会显示“暂无消息”提示。

第四轮会话

问:所有的代码都在同一个文件里可维护性和可读性都不高,帮我分一下文件。
ps:之前 claude 回答的代码都是在同一个文件里,所以想分一下文件。
claude 分了 Models.swift 、 MockData.swift 、 MessageBubble.swift 、 ChatListView.swift 、DetailView.swift、MessageInputView.swift、ContentView.swift、ChatApp.swift。

第五轮会话

问:做的非常好,我还需要进一步完善 app 的功能。在输入框里输入内容点击发送后,输入的内容需要在界面上展示出来,这个消息属于当前用户的消息。
claude 增加了 ChatViewModel.swift 来管理聊天状态,另外实现了消息发送、内容超过一屏自动滚动等逻辑。
有一个接口使用了 mac 14 或 iOS17 已经废弃的接口,有一个 warning,其他实现都很完美。

第六轮会话

问:我想增加一个缓存到磁盘的能力,发送的数据可以缓存到磁盘。这样下次再打开 app 时可以看到上次发送的内容。请帮我实现一下。
claude 增加了ChatStorage.swift来管理缓存,支持读缓存和写缓存。另外修改 Models.swift 支持 Codable 协议,方便进行 Json 编码和解码。

iOS 总结

claude 3.7 sonnet 编程能力确实挺好的,代码基本没有编译问题或逻辑出错,另外还能非常好的理解用户的需求,甚至没有描述的细节点都能帮你实现,比如没有对话内容时会显示暂无消息的提示。只需要一张手绘UI图,和 7 个会话就可以实现一个本地的聊天 app。真的是效率提升工具,后续只要能描述好需求就能直接实现代码了,未来写代码真的是一个非常低门槛的行业了。

安卓测试效果

第一轮会话

问:我现在想在安卓上实现这一套逻辑和 UI,你帮我转成安卓的代码试试,可以使用最新的 kotlin 语言来实现
claude 使用最新的 kotlin 语言和 Jetpack Compose UI 框架来实现,首先输出了项目结构,另外补充了每个文件的内容。应该是输出的内容太多了,输出 ChatListView.kt 后就没有内容了。

项目结构如下:
app/
├── src/
│ ├── main/
│ │ ├── java/com/example/chatapp/
│ │ │ ├── MainActivity.kt
│ │ │ ├── ui/
│ │ │ │ ├── theme/
│ │ │ │ │ └── Theme.kt
│ │ │ │ ├── ChatListView.kt
│ │ │ │ ├── DetailView.kt
│ │ │ │ ├── MessageBubble.kt
│ │ │ │ └── MessageInputView.kt
│ │ │ ├── data/
│ │ │ │ ├── models/
│ │ │ │ │ ├── ChatItem.kt
│ │ │ │ │ └── Message.kt
│ │ │ │ ├── MockData.kt
│ │ │ │ └── ChatStorage.kt
│ │ │ └── viewmodel/
│ │ │ └── ChatViewModel.kt

第二轮会话

问:请继续补充完整,detailview 、 messagebubble 、 messageInputView 都需要补充完整
claude 补充到 Theme.kt文件后又没了。估计是还是文件太长了导致。

第三轮会话

问:继续
claude 补充了 Theme.kt 、 build.gradle、AndroidManifest.xml、完整的项目结构。

app/
├── src/
│ ├── main/
│ │ ├── java/com/example/chatapp/
│ │ │ ├── MainActivity.kt // 应用入口点
│ │ │ ├── ui/
│ │ │ │ ├── theme/
│ │ │ │ │ └── Theme.kt // 应用主题
│ │ │ │ ├── ChatApp.kt // 主应用布局
│ │ │ │ ├── ChatListView.kt // 聊天列表视图
│ │ │ │ ├── DetailView.kt // 聊天详情视图
│ │ │ │ ├── MessageBubble.kt // 消息气泡组件
│ │ │ │ └── MessageInputView.kt // 消息输入组件
│ │ │ ├── data/
│ │ │ │ ├── models/
│ │ │ │ │ ├── ChatItem.kt // 聊天项数据模型
│ │ │ │ │ └── Message.kt // 消息数据模型
│ │ │ │ ├── MockData.kt // 模拟数据
│ │ │ │ └── ChatStorage.kt // 数据持久化
│ │ │ └── viewmodel/
│ │ │ └── ChatViewModel.kt // 视图模型
│ │ ├── res/ // 资源文件
│ │ └── AndroidManifest.xml // 应用清单
│ └── build.gradle // 模块级构建配置
└── build.gradle // 项目级构建配置

安卓总结

可能是因为输出的内容太多,输出的内容中断了两次。另外输出的build.gradle内容格式和我用 android studio 生成的格式不同,import 部分出错,导致使用了这些包的代码编译出错。自己解决这些编译问题花了不少时间。
claude 生成的是

implementation 'androidx.core:core-ktx:1.12.0'


android studio 自动生成的是

implementation(libs.androidx.core.ktx)

结论

claude 3.7 sonnet 确实很好用,理解能力、编码能力都有很大的提升,代码基本没有出现编译错误和逻辑错误的情况。只要我们能描述好需要做什么,它基本都能帮我们做好。
即使 claude 3.7 sonnet 已经非常强大,在使用时还是要注意一下几点:
1 、明确需求。清晰描述功能目标,最好使用 AI 最容易理解的语言来描述。
2 、代码安全。生成的代码可能存在安全漏洞,一定要自己检查好,还要确保代码不会暴露敏感信息。另外不要把自己公司的代码传给 AI,会造成公司代码泄露。
3 、测试和验证。不要完全相信 AI,一定要对 AI 生成的代码进行检查和测试。尤其是要测试边界条件和异常下的表现。
4 、性能优化。 AI 生成的代码可能只是实现了功能,对于性能可能无法保证,复杂的地方需要检查运行性能。
5 、代码风格。最好在代码生成之前就明确号代码的编写风格。

53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询

扫码登录
登录即表示您同意《53AI网站服务协议》
服务协议

欢迎您使用【53AI 官方网站】(以下简称“本网站”或“我们”)。本《会员服务协议》(以下简称“本协议”)是您(以下简称“会员”或“用户”)与【深圳市博思协创网络科技有限公司】之间关于注册、登录及使用本网站会员服务所订立的法律协议。

在您注册或登录前,请务必审慎阅读、充分理解各条款内容,特别是免除或限制责任的条款、知识产权条款、争议解决条款等。此类条款将以加粗形式提示您注意。 当您通过微信公众号授权、手机验证码验证或其他方式成功登录本网站时,即视为您已完全理解并同意接受本协议的全部内容。

一、 定义

本网站:指由【深圳市博思协创网络科技有限公司】运营的,域名为【53ai.com】的网站及相关移动端页面。

会员服务:指本网站向注册会员提供的知识库文章查阅、内容检索及其他相关增值服务。

知识库内容:指本网站发布的包括但不限于文字、图表、数据、研究报告、行业分析等数字化内容资源。

二、 账号注册与登录

登录方式:本网站支持以下登录方式,您可根据实际情况选择:

微信公众号授权登录:您同意将您的微信OpenID信息授权给本网站,用于创建或关联会员账号。

手机验证码登录:您需提供真实有效的手机号码,并通过短信验证码完成身份验证与登录/注册。

账号安全:您的账号仅限您本人使用,禁止赠与、借用、租用、转让或售卖。因您保管不善导致的账号被盗、密码泄露等损失,由您自行承担。

实名认证:根据相关法律法规要求,我们可能要求您在特定功能下完成实名认证。如您拒绝提供,可能无法使用部分或全部服务。

未成年人保护:若您未满18周岁,请在法定监护人的陪同下阅读本协议,并在征得监护人同意后使用本服务。

三、 服务内容与规范

知识库查阅权限:会员登录后,有权按照其会员等级对应的权限范围,在线浏览、检索本网站知识库中的相关文章及内容。

服务变更:我们有权根据业务发展需要,调整、变更或终止部分服务内容,并将以网站公告、公众号消息等方式提前通知。

禁止行为:您在使用服务时不得实施以下行为:

利用技术手段批量爬取、下载、转存知识库内容;

将知识库内容用于商业目的或未经授权地向第三方传播;

干扰本网站正常运行或侵犯其他用户合法权益;

发布违法违规信息或从事违反公序良俗的活动。

四、 知识产权声明

权利归属:本网站知识库中的排版设计、软件代码等内容的知识产权均归【公司全称】或原权利人所有,受《中华人民共和国著作权法》等法律保护。

有限许可:本网站授予会员一项非独占、不可转让、不可转授权的普通许可,仅限于个人学习、研究之目的在线查阅知识库内容。

侵权追责:未经书面许可,任何单位或个人不得以任何形式复制、转载、摘编、镜像、汇编或以其他方式使用上述内容。一经发现,我们保留追究其法律责任的权利。

五、 个人信息保护

我们重视对您个人信息的保护。关于我们如何收集、使用、存储和保护您的个人信息,请单独阅读 《隐私政策》。

您通过微信公众号授权或手机号验证所提供的信息,我们将严格按照《个人信息保护法》的规定处理,仅用于身份识别、服务提供及安全验证等必要用途。

您可以随时通过网站设置或联系客服行使查阅、更正、删除个人信息及撤回授权同意的权利。

六、 免责声明

内容准确性:知识库内容仅供参考,不构成专业建议。我们不对其完整性、准确性、时效性作任何明示或暗示的保证,您应自行判断并承担使用风险。

不可抗力:因自然灾害、政策法规变化、网络故障、第三方平台接口异常(如微信接口维护、运营商短信通道故障)等不可抗力导致的服务中断或延迟,我们不承担违约责任。

第三方链接:本网站可能包含指向第三方网站的链接,该等网站的内容和服务不受我们控制,请您自行甄别风险。

七、 违约责任

如您违反本协议约定,我们有权视情节采取警告、限制功能、暂停服务、注销账号等措施,并保留要求赔偿损失的权利。

如因您的违约行为导致我们遭受行政处罚、第三方索赔或商誉损失,您应承担全部赔偿责任(包括但不限于罚款、赔偿金、律师费、公证费等)。

八、 法律适用与争议解决

本协议的订立、执行和解释均适用中华人民共和国大陆地区法律。

因本协议产生的或与本协议有关的任何争议,双方应友好协商解决;协商不成的,任何一方均可向【公司所在地】有管辖权的人民法院提起诉讼。

九、 其他

本协议构成双方就本服务达成的完整协议,取代此前任何口头或书面约定。

本协议任一条款被认定为无效或不可执行的,不影响其他条款的效力。

我们对本协议享有最终解释权,并在法律允许的范围内保留随时修改的权利。修改后的协议一经公布即生效,继续使用服务即视为同意修订内容。


已查阅