应用开源!火山引擎“大模型应用实验室”它来啦!

321 阅读6分钟

大模型应用实验室:开源新起点 🚀

在12.18的冬季Force大会上,超萌的双语互动视频生成器惊艳亮相!它像一个魔法黑盒,只需要输入一个故事主题,就能自动生成双语视频,并且还支持对最终视频的交互式问答。假如你们之前并不了解它,可以欣赏下面的精彩视频:

20241220-124855.gif

它能力超群,集成了 LLM 模型、VLM 模型、视频生成模型、语音生成模型、视觉理解模型、语音转文本模型等一系列强大的 AI 能力;同时操作简单,只需要两步就可以制作出可爱有趣且富有教育意义的双语视频:

  1. 自动化流程:输入故事主题后,智能体按照纯模型逻辑开启自动化流程,依据故事和分镜描述自动生成视频
  2. 手动调整:支持人工手动修改每一个步骤的提示词、音色以及台词,调整完成后还能再次生成并剪辑成新视频

互动双语视频生成器上线后,许多同学们都利用它,轻松将创意化为生动影像,制作出可爱有趣的双语短片👍不过我知道,对于专业开发者来说,做几个有趣的视频远远不够,背后的开源代码和搭建专属于自己的视频对话应用才是真正重要的! 现在,火山引擎“大模型应用实验室”它来了,带着开源的高代码AI应用,它来了! “大模型应用实验室”是专为专业开发者打造的开源项目!在这里,你们可以获得:

  1. 完整且贴合具体场景的解决方案
  2. 开箱即用的完整产品代码
  3. 高质量激发模型效果的Prompt

同时,除了互动双语生成器,“大模型应用实验室”诚意满满,同步开放了诸多智能体应用,涵盖语音识别、语音合成、图像生成等多种AI能力,覆盖教育,终端,娱乐,办公等10多种场景,未来更将实现 AI 应用的全景布局! 你们可以基于这些丰富的资源进行任意拓展,实现高自由度的编排,真正站在火山引擎的技术肩膀上进行创新创造!

Arkitect SDK:开发新助力 💪

此次开源,和之前的方舟API不同,火山引擎“大模型应用实验室”全新开发了高代码智能体SDK — Arkitect! Arkitect是面向具备一定专业能力的开发者,提供了大模型应用开发需要用到的工具集和流程集,凭借高代码SDK Arkitect和示例代码,能快速开发并自定义拓展适配业务场景

开源信息

架构特性

SDK Arkitect有三大功能,特性

  1. Prompt渲染 & 模型调用:简化调用模型时,prompt渲染及模型调用结果处理的流程
  2. 插件调用:支持插件本地注册、插件管理及对接FC模型自动化调用
  3. Trace 监控:支持对接otel协议的trace管理及上报

快速入门

SDK Arkitect目前支持快速部署AI聊天工具和AI应用插件调用,部署基础的聊天工具相信对大家来说并不是难事,如果不太熟练的小伙伴可以阅读 SDK Arkitect Readme 进行尝试,让我们看看该怎么快速调用插件吧

  1. 安装 arkitect
pip install arkitect --index-url https://pypi.org/simple
  1. 登录方舟控制台,创建一个推理接入点(Endpoint),请选择带 Function-call 能力的模型,推荐使用doubao-pro-32k functioncall-241028 参考文档
  2. 登录方舟控制台,创建一个 API KEY 参考文档
  3. 创建main.py,修改文件中的 endpoint_id 为您新创建的推理接入点 ID
"""
fc+llm
"""

import os
from typing import AsyncIterable, Union

from arkitect.core.component.llm import BaseChatLanguageModel

from arkitect.core.component.llm.model import (
    ArkChatCompletionChunk,
    ArkChatParameters,
    ArkChatRequest,
    ArkChatResponse,
    Response,
)
from arkitect.core.component.tool import Calculator, ToolPool
from arkitect.launcher.local.serve import launch_serve
from arkitect.telemetry.trace import task

endpoint_id = "<YOUR ENDPOINT ID>"

@task()
async def default_model_calling(
    request: ArkChatRequest,
) -> AsyncIterable[Union[ArkChatCompletionChunk, ArkChatResponse]]:
    parameters = ArkChatParameters(**request.__dict__)
    ToolPool.register(Calculator())

    llm = BaseChatLanguageModel(
        endpoint_id=endpoint_id,
        messages=request.messages,
        parameters=parameters,
    )
    if request.stream:
        async for resp in llm.astream(functions=ToolPool.all()):
            yield resp
    else:
        yield await llm.arun(functions=ToolPool.all())


@task()
async def main(request: ArkChatRequest) -> AsyncIterable[Response]:
    async for resp in default_model_calling(request):
        yield resp


if __name__ == "__main__":
    port = os.getenv("_FAAS_RUNTIME_PORT")
    launch_serve(
        package_path="main",
        port=int(port) if port else 8080,
        health_check_path="/v1/ping",
        endpoint_path="/api/v3/bots/chat/completions",
        clients={},
    )
  1. 设置 APIKEY 并启动后端
export ARK_API_KEY=<YOUR APIKEY>
python3 main.py
  1. 发起请求
curl --location 'http://localhost:8080/api/v3/bots/chat/completions' \
--header 'Content-Type: application/json' \
--data '{
    "model": "my-bot",
    "messages": [
        {
            "role": "user",
            "content": "老王要养马,他有这样一池水:如果养马30匹,8天可可以把水喝光;如果养马25匹,12天把水喝光。老王要养马23匹,那么几天后他要为马找水喝?"
        }
    ]
}'

预期返回如下:

{
    "error": null,
    "id": "0xxxxxxxxx",
    "choices": [
        {
            "finish_reason": "stop",
            "moderation_hit_type": null,
            "index": 0,
            "logprobs": null,
            "message": {
                "content": "\n首先计算出每天新增的水量,再算出池中原有的水量,最后根据养马数量计算水可以喝的天数,调用 `Calculator/Calculator` 工具进行计算。\n\n假设每匹马每天的饮水量为\\(1\\)份,我们先来求出每天新增的水量。\n\n\n\n假设每匹马每天的饮水量为1份。30匹马8天的饮水量为$30\\times8=240$份,25匹马12天的饮水量为$25\\times12=300$份。那么12天的总饮水量比8天的总饮水量多了$300-240=60$份,这60份水是$12-8=4$天新增加的水量,所以每天新增加的水量为$60\\div4=15$份。则水池原有的水量为$30\\times8-15\\times8=120$份。如果养23匹马,每天实际消耗原水池的水量为$23-15=8$份,所以喝完水池里的水需要$120\\div8=15$天\n15天后他要为马找水喝。",
                "role": "assistant",
                "function_call": null,
                "tool_calls": null,
                "audio": null
            }
        }
    ],
    "created": 1737022804,
    "model": "doubao-pro-32k-241215",
    "object": "chat.completion",
    "usage": {
        "completion_tokens": 558,
        "prompt_tokens": 1361,
        "total_tokens": 1919,
        "prompt_tokens_details": {
            "cached_tokens": 0
        }
    },
    "metadata": null
}

AI生态合作伙伴招募令 📢

为加速AGI时代的全面到来,火山引擎大模型应用实验室现正式发起 AI 生态合作伙伴招募!诚挚邀请各位小伙伴入驻,只需轻松扫码,即可加入 “应用实验室开发者沟通群”,与大神同聚。在这里,大家能够畅所欲言、携手共进,共同探寻AI应用开发的无限可能!借助大模型应用实验室的开源应用,实现高自由度编排,打造专属AI应用,开启智能创新新纪元!