# uni-ai

ai大潮来袭,如何把ai能力引入自己的应用中?几乎是每个开发者都在关心的问题。

uni-ai,定位就是开发者使用ai能力的最佳开发库,更丰富、更易用、更高效。

# 特点

  1. 聚合

uni-ai,聚合了国内外各种流行的ai能力。包括

  • 大语言模型LLM:chatGPT、GPT-4、百度文心一言、minimax等
  • 图形能力:文心一格 (未来还会聚合更多)

uni-ai支持配置自己在AI厂商处申请的API Key和代理,也支持免配直接使用。

  1. 现成开源项目

ai能力非常常见的应用场景,有智能客服和自动生成文稿。

uni-ai把这些常见场景对应的应用均已做好,并且开源。开发者可以直接拿走使用。

  • uni-ai-chat,独立的ai聊天模板。详见
  • uni-cms,内置了智能内容生成。详见
  • uni-im,内置了智能客服。详见

这些完善的项目,包括了前端页面(全端可用)、云对象、云数据库等全套代码,开箱即用。

在线体验:https://hellouniadmin.dcloud.net.cn/

这是一个集成了uni-cms的uni-admin系统。登录后,左侧内容管理中新建一篇文章,toolbar右上角有ai按钮。注意测试系统的数据会定时清除。

注意这个系统不等于uni-ai,uni-ai是底层的api。uni-cms是集成了uni-ai的开源应用。

  1. 费用优化

ai能力调用,是需要按token数量付费的。token太少会回答不准,太多则费用太高。在反复对话的场景下尤其涉及之前对话记忆多久的问题。uni-im等集成了uni-ai的对话应用,已经内置了平衡策略。开发者无需再编写复杂的代码。

使用简单的js api,快速开始你的ai之旅吧!

// 因涉及费用,ai能力调用均需在服务器端进行,也就是uniCloud云函数或云对象中
let llmManager = uniCloud.ai.getLLMManager({
  provider: 'azure'
})
await llm.chatCompletion({
  messages: [{
    role: 'user',
    content: '你好,ai'
  }]
})

# 概念介绍

# Token

在大语言模型中,token是指自然语言文本中的最小粒度单位,也就是一个最小的单词或符号。通常情况下,自然语言文本是由一个一个的token组成的,每个token都具备自己的词性、词义等属性。

在训练大语言模型时,会使用一种称为“词向量”的技术,将每个token表示成一个向量形式,这个向量可以包含很多有用的语义信息,比如单词的词性、上下文等。模型通过这些向量来学习和理解自然语言文本,并能够完成各种任务。

在大语言模型处理任务的过程中,输入的文本会被转译为token输入到模型中,而输出则是从token转译到文本。输入token与输出token的合计数量直接影响了大语言模型所消耗的算力,所以业界通常采用基于token数量的计费模式。

也就是一次请求,输入的前文和返回的后文,合计算token总数来计费。

不同的模型在处理文本时分词方法不完全相同,可能存在特定的一句话在不同的模型里面会计算出完全不一样的token数量,此外LLM服务商在处理输入时可能会加入一些额外token。如果服务商调整tokenizer算法也可能会导致token数计算变化。

中文、英文、数字、符号,对应的token数量也不同。

对于连续对话,如果有前文记忆总结,那么总结内容也会消耗token。比如uni-ai-chat模板中已经内置了前文记忆总结功能,会额外消耗token数(如果不进行总结,要不丢失会话记忆,要不多轮对话会因为token数太多无法进行)

不同大语言模型单次请求的token最大数是有上限的,详见开发文档。

举例,同样是输入15个字,返回100个字,在minimax和gpt-3.5-turbo上,token数不一样。

minimax:总token数**315**
用户:写一段关于森林的100字小作文
AI:森林,大自然的宝库,生机勃勃,郁郁葱葱。它为动物提供栖息之所,为植物提供生长的沃土。茂密的枝叶遮挡烈日,使森林内部充满凉爽,是夏日的天堂。徒步走进森林,感受清新的空气和鸟鸣,心旷神怡。树木彼此交织,形成绿色的迷宫,散发神秘的气氛。山谷河流点缀其中,与森林和谐共生,形成大自然的奇景。森林不仅是生态的保护者,也是人类心灵的避风港。

gpt-3.5-turbo:输入token数23,输出token数226,总token数**249**
用户:写一段关于森林的100字小作文
AI: 森林是地球上最美丽多样的自然景观之一。它们是许多生物的家园,包括动物和植物,这些生物相互依赖,在森林中形成一个复杂的生态系统。森林也是地球上最重要的碳吸收器之一,因此也是气候变化的关键因素之一。然而,现代人类的活动却给森林带来了极大的压力,我们的砍伐、野火和污染威胁了整个生态系统的平衡,我们必须介入保护森林。只有保护森林,才能在未来保持我们的人类家园健康和可持续。

# 常见用途场景

现阶段的ai,被称之为AIGC,即生成式ai。我们需要了解它擅长和不擅长的地方,并管理预期。

ai是模糊的、概率的,不是精确的,不要问生成式ai数学题。

从本质来讲,生成式ai不是在回答问题,而是在通过前文预测下文。你的前文可以恰好是一个问题,也可以不是问题。

ai会推理出很多下文并打分,选择最高分的下文返回给你。但“不知道”这个下文的打分往往不如其他胡诌的下文得分高,所以你很少会遇到ai的下文是“不知道”。

ai会使用互联网上的数据进行学习训练,但训练语料不会包含最新实时的知识和互联网上未公开的知识。

虽然ai学习了互联网的知识,但它不是复读机,它把知识压缩形成自己的理解。你的前文和它的理解碰撞出它的下文(所以合适的前文,也就是prompt很重要)。

越好的ai,其知识储备、理解和推理能力越优秀,预测的下文可以更逼近真实,甚至超过普通人的水平。

目前生成式ai的主要用途有:

  • 文章生成、润色、续写:常见于生成文案、文书、标语、名字、营销邮件、笑话、诗词等。uni-cms中,已经内置了这个功能
  • 闲聊:情感咨询、常识问答。由于聊天本身有不少代码工作量,推荐使用现成开源项目。比如单纯的ai聊天模板uni-ai-chat,或专业的im工具、支持私聊群聊的uni-im
  • 翻译:各国各民族语言翻译
  • 代码注释补充和简单代码生成,关于HBuilderX中提供ai代码辅助编程,有如下解决方案:

如对生成内容有较高的准确性要求,一方面使用gpt-4等高级的模型;另一方面需要追加专业甚至私有的语料训练。

gpt-4是目前准确性最高的ai,也是最贵的ai。开发者需根据需求场景选择,一般的文章生成和闲聊,可以不用gpt-4。

另外想得到良好的推理结果,优化prompt前文也非常重要。

# 合规注意

国内使用ai,需注意合规性。监管部门并不拒绝使用ai提升生产效率,但对于可能造成社会动员能力、价值观影响等政治问题、以及黄赌毒等违法问题非常敏感。

  • ai生成的文章,如发布到互联网上,应当调用内容安全审查后再发布。比如uni内容安全uni-cms已经内置了uni内容安全,只需在配置里开启即可。
  • 如开放给用户聊天使用,也应该通过内容安全来管控,避免出现违法违规内容,导致被下架。
  • 在微信小程序等平台,名字或内容涉及ChatGPT,都会被平台封禁。所以上微信小程序时不能提及ChatGPT,也不要使用uni-ai的openai配置功能。可以使用国内ai或让uni-ai自动分配。同时输入和返回的内容都需要做安全审查,具体见上。
  • 如果在企业内部通过openai提升生产力,这不涉及合规问题,可以放心使用。