视频教程

点击链接前往观看: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 使用

  • 绑定阿里云账号,获得免费的算力资源

  • 点击"我的Notebook",选择GPU环境启动

  • 点击右上方的"WebIDE",进入优雅的 Vscode 环境,这里载入了 Vscode 的基本功能,可以让我们像在本地环境下一样进行开发

通义灵码使用概述

通义灵码简介

通义灵码具备多文件代码修改和工具使用的能力,可以与开发者协同完成编码任务,比如代码生成、需求实现、问题解决、单元测试用例生成、批量代码修改等。

在Notebook中已经内置了完整的通义灵码,我们只需要登录自己的账号即可使用灵码进行代码开发。

通义灵码使用及功能

  • 首先我们登录通义灵码,这里的 AccessKey ID 以及 AccessKey Secret 可以在阿里云个人账号的中一键获取(https://help.aliyun.com/

  • 接下来我们就可以简单使用通义灵码的各种功能:

代码生成(写一个推箱子的小游戏,创建相关代码文件并生成对应代码):

  1. 首先选择 AI 程序员功能(支持文件创建和多文件修改)

  1. 输入我们的需求,让通义灵码创建文件并生成代码

  1. 代码生成后,可以选择接受,或者拒绝重新调整提示词

  1. 接受之后,我们可以选择需要修改的文件作为上下文

  1. 让通义灵码修改代码后,同样可以选择接受或拒绝(注意:当 AI 生成内容不符合预期,或你的需求有变化时,可以通过快照功能回退到之前的对话轮次和代码变更,继续重新提问)

代码编写:

  1. 自动补全/依据注释补全代码
  2. 单元测试
  3. 代码优化

案例展示:使用 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 产品马上变成现实~

体验通义灵码:https://lingma.aliyun.com/download


云效DevOps平台
38 声望21 粉丝

阿里云云效,[链接]体验云原生时代新DevOps平台,支持公共云、专有云和混合云多种部署形态,通过云原生新技术和研发新模式,助力创新创业和数字化转型企业快速实现研发敏捷和组织敏捷,打造“双敏”组织,实现多倍...