视频教程
点击链接前往观看:https://www.bilibili.com/video/BV1CZQqYJEoq/
内容简介
在具体开发过程中,好的开发环境和开发工具十分重要,为了更好的体验,更好地利用AI进行代码生成,我们推荐使用魔搭社区 Notebook云端开发 IDE 工具,搭配内置的 Vscode 编程环境以及通义灵码工具,一站式进行AI应用搭建。 不需要复杂的环境配置,也不需要代码基础,只要熟练运用AI工具,便可以完成AI应用搭建和运行。
Linux or Windows or MacOs ❓
Vscode or jetbrains ❓
Copilot or Cursor ❓
notebook IDE + 通义灵码 ✅
学习任务
✅ 熟悉Notebook IDE开发环境
✅ 熟悉通义灵码的 AI 程序员等功能
✅ 利用Notebook + 通义灵码一站式完成之前的demo
Notebook 功能概述
Notebook 简介
ModelScope Notebook是一款云端机器学习开发IDE工具,提供远程Linux的编程环境,适用于不同水平的AI开发者。Notebook提供了点击就可用的免费算力额度。
具体环境详见:https://modelscope.cn/docs/notebooks/intro
Notebook 使用
- 登录魔搭账号(https://www.modelscope.cn/home)
- 绑定阿里云账号,获得免费的算力资源
- 点击"我的Notebook",选择GPU环境启动
- 点击右上方的"WebIDE",进入优雅的 Vscode 环境,这里载入了 Vscode 的基本功能,可以让我们像在本地环境下一样进行开发
通义灵码使用概述
通义灵码简介
通义灵码具备多文件代码修改和工具使用的能力,可以与开发者协同完成编码任务,比如代码生成、需求实现、问题解决、单元测试用例生成、批量代码修改等。
在Notebook中已经内置了完整的通义灵码,我们只需要登录自己的账号即可使用灵码进行代码开发。
通义灵码使用及功能
- 首先我们登录通义灵码,这里的 AccessKey ID 以及 AccessKey Secret 可以在阿里云个人账号的中一键获取(https://help.aliyun.com/ )
- 接下来我们就可以简单使用通义灵码的各种功能:
代码生成(写一个推箱子的小游戏,创建相关代码文件并生成对应代码):
- 首先选择 AI 程序员功能(支持文件创建和多文件修改)
- 输入我们的需求,让通义灵码创建文件并生成代码
- 代码生成后,可以选择接受,或者拒绝重新调整提示词
- 接受之后,我们可以选择需要修改的文件作为上下文
- 让通义灵码修改代码后,同样可以选择接受或拒绝(注意:当 AI 生成内容不符合预期,或你的需求有变化时,可以通过快照功能回退到之前的对话轮次和代码变更,继续重新提问)
代码编写:
- 自动补全/依据注释补全代码
- 单元测试
- 代码优化
案例展示:使用 Notebook+通义灵码完成案例
在启发课的案例中,我们主要关注如何将想法变成实践,忽略了代码开发的细节部分,现在我们就可以利用 Notebook 的环境和通义灵码的帮助从零开始完成案例。
生成代码框架
基于gradio实现一个求职助手网页,它能够帮助用户进行简历优化、职位推荐以及基于简历的职位推荐。以下是详细功能:
1. 全局配置
大模型加载与调用,代码如下:
模型加载部分:
qwen_model = ModelFactory.create(
model_platform=ModelPlatformType.OPENAI_COMPATIBLE_MODEL,
model_type="Qwen/Qwen2.5-72B-Instruct",
api_key="Your API",
url="https://api-inference.modelscope.cn/v1",
model_config_dict=QwenConfig(temperature=0.2).as_dict(),
)
agent = ChatAgent(
system_message="You're a helpful assistant for job anlysis, please answer in Chinese.",
message_window_size=30,
model=qwen_model
)
模型调用部分:
assistant_response = agent.step(combined_content)
assistant_response_str = assistant_response.msgs[0].content
3. 辅助功能函数
URL搜索:打开一个存放网址信息的txt文件(帮我创建好这个文件),然后通过目标岗位和地点让大模型分析来获取最符合的网址信息。
爬取信息
4. 具体功能函数
职位推荐:调用大模型根据目标岗位和地点以及输入的简历内容,推荐三个适合的职位,并给出推荐原因。
简历分析:首先通过爬取信息函数抓取相关信息,然后调用大模型结合用户的简历内容,推荐最适合的三个职位,并解释推荐原因。
简历优化:接收简历文件和目标职位作为输入,调用大模型根据目标职位对简历内容进行优化,生成优化后的简历文件,并提供改进建议。
根据上面的要求创建对应的文件并填充大概的代码框架
在通义灵码生成文件和代码后,注意甄别代码是否合理,例如:在第一次生成代码时,由于“大模型加载与调用”的描述过于笼统,并且这个部分本身可以进行很复杂的配置,所以通义灵码会将这一部分写得很复杂,所以我们可以将准备好的接口代码直接告诉通义灵码,让它基于已有的代码来进行代码生成。
初步的代码框架显示结果如下(可以看到,通义灵码生成的代码相对结构严谨,更适合我们去进一步开发):
功能完善
将网页信息爬取以及各种功能组件进行完善,确保正常运行。
例如: 我们需要使用Crawl4AI工具,告诉通义灵码将爬取信息函数替换为我们的接口函数,告诉它我们使用时要做的具体调整(如将爬取的结果写入指定文件),并且在其他文件中修改相应的调用代码;在search_urls函数中发现注释是:使用特定模型进行分析,说明还没有用到我们在全局配置model.py中加载好的模型,我们就需要告诉通义灵码需要在这里调用model.py中加载的模型。
在utils.py中将爬取信息的函数改为下面的函数,加上逻辑:爬取的url地址通过search_urls获得,将爬取到的信息写入一个txt文件中。同时修改在其他文件的调用
async def bug_search(target_position, target_location):
async with AsyncWebCrawler() as crawler:
result = await crawler.arun(
url="https://www.nbcnews.com/business",
)
print(result.markdown)
在search_urls函数中调用model.py的模型进行分析来返回结果
同样,我可以完善各个功能直到成功运行
功能添加
在基本功能实现后,我们可以添加更多功能,这个时候就可以体现出多文件修改的强大之处。
例如:我们想要在职位推荐中添加目标城市和固定的目标岗位,以便爬取信息时爬取更加相关的信息。
在职位推荐模块的目标岗位和地点输入时,把这两个输入做成一行两列的样式,并加上下拉菜单,可以在下拉菜单中选择岗位和城市,也可以直接输入,在utils.py设置一些全局的常用的城市和岗位(尽可能多)作为可以选择的元素
最终结果
结语
本节课主要介绍了如何利用 Notebook IDE 环境和通义灵码工具来具体开发 AI 产品,通过前面的介绍,可以感受到好的开发环境和开发工具往往可以让开发过程事半功倍,也可以更快更好地解决一些实际问题。随着 AI 代码生成工具不断成熟,动动手指,你的 AI 产品马上变成现实~
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。