使用uniapp做ai开发,太简单了。无论是chatgpt还是国内的大语言模型,都可以随意使用

这篇具有很好参考价值的文章主要介绍了使用uniapp做ai开发,太简单了。无论是chatgpt还是国内的大语言模型,都可以随意使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

uni-ai是什么

1、聚合

2、prompt辅助

3、私有数据训练

4、现成开源项目

如何使用uni-ai

1、通过api调用

2、获取LLM实例

3、对话

4、简单示例

5、流式响应

其他说明

 费用

常见用途场景


做小程序开发的应该都知道uniapp,这是Dcloud推出的一款跨端开发框架。是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、Web(响应式)、以及各种小程序(微信/支付宝/百度/头条/飞书/QQ/快手/钉钉/淘宝)、快应用等多个平台。

目前uniapp的用户非常多,基本上是开发多端小程序的不二之选。

最近,chatgpt爆火,很多人也想要进行相关应用的开发,那么,如果用uniapp来做ai开发呢?Dcloud官方非常贴心的提供了一个新的开发组件,uni-ai,使用他,你可以轻松的进行ai开发集成,无论是国外的chatgpt,还是国内的常用的大语言模型,都可以信手拈来。

而且,它目前还是免费提供的哦,是不是很Nice?

uni-ai是什么

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

它具有以下特点

1、聚合

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

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

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

2、prompt辅助

自然语言谁都会说,但想提出一个好prompt来指挥ai满足自己的需求并不简单。所以出现了prompt工程师的说法。

uni-ai整合了大量prompt模板,并将提供 format promptprompt插件市场

举个例子,如果你需要写一个产品营销文案,你可以使用自然语言,如请帮我编写一份产品营销文案,产品名称叫uni-app,它的特点是开发一次全端覆盖。

但实际上,自然语言这么写是繁琐且容易纰漏的。format prompt是弹出一个表单,你在表单里填写:

产品名称:uni-app
目标用户:程序员
产品归类:前端应用开发框架
产品用途:使用该框架开发应用,一次编码可覆盖到Android app、iOS app、web、以及各家小程序,如微信、百度、支付宝、抖音、qq、京东等小程序和快应用。
卖点:高效、易学、生态完善
文风:技术风格
字数:500字

复制代码

uni-ai,为你提供更好的prompt。

3、私有数据训练

目前的大模型,没有最新的、以及企业私有的数据。各家也未开放fine-turning微调模型。

如何把私有数据灌入ai中,几乎是每个企业都关心的事情。

uni-ai将提供一整套方案解决这个问题,只需把私有数据按指定格式提交到你的uniCloud服务空间,就可以自动把这些最新的、私有的知识加入到ai的回答中。

4、现成开源项目

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

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

如何使用uni-ai

1、通过api调用

ai作为一种云能力,相关调用被整合到uniCloud中。

如您的服务器业务不在uniCloud上,可以把云函数URL化,把uni-ai当做http接口调用。

在实际应用中,大多数场景是直接使用uni-imuni-cms的ai功能,这些开源项目已经把完整逻辑都实现,无需自己研究API。

ai能力由uni-cloud-ai扩展库提供,在云函数或云对象中,对右键配置uni-cloud-ai扩展库。如何使用扩展库请参考:使用扩展库

如果HBuilderX版本过低,在云函数的扩展库界面里找不到uni-ai

注意uni-ai是云函数扩展库,其api是uniCloud.ai,不是需要下载的三方插件。而uni-cmsuni-im等开源项目,是需要在插件市场下载的。

2、获取LLM实例

LLM,全称为Large Language Models,指大语言模型。

LLM的主要特点为输入一段前文,可以推导预测下文。

LLM不等于ai的全部,除了LLM,还有ai生成图片等其他模型。

用法:uniCloud.ai.getLLMManager(Object GetLLMManagerOptions);

注意需在相关云函数或云对象中加载uni-cloud-ai使用扩展库,否则会报找不到ai对象。

参数说明GetLLMManagerOptions

参数 类型 必填 默认值 说明
provider string - llm服务商,目前支持openaibaiduminimax。不指定时由uni-ai自动分配
apiKey string - llm服务商的apiKey,如不填则使用uni-ai的key。如指定openai和baidu则必填
accessToken string - llm服务商的accessToken。目前百度文心一言是必填,如何获取请参考:百度AI鉴权认证机制
proxy string - 可有效连接openai服务器的、可被uniCloud云函数连接的代理服务器地址。格式为IP或域名,域名不包含http前缀,协议层面仅支持https。配置为openai时必填

关于proxy参数的说明

如果使用的代理需要用户名和密码,请在代理地址中加入用户名和密码,例如:username:password@ip:port。uni-ai在请求openai时会自动将openai的域名替换为配置的代理域名或ip,一般的反向代理服务器均可满足此需求。

示例

在云函数或云对象中编写如下代码:

// 不指定provider
const llm = uniCloud.ai.getLLMManager()

// 指定openai,需自行配置相关key,以及中转代理服务器
const openai = uniCloud.ai.getLLMManager({
  provider: 'openai',
  apiKey:'your key',
  proxy:'www.yourdomain.com' //也可以是ip
})

现阶段,不指定provider时,uni-ai分配的ai引擎无需开发者支付费用。同时也不会自动分配到gpt-4等比较昂贵但精准的模型上。如有变化会提前公告。

开发者使用openai等已经商用的ai时,需自行向相关服务商支付费用。

3、对话

 注意

对话接口响应一般比较慢,建议将云函数超时时间配置的长一些,比如30秒(客户端访问云函数最大超时时间:腾讯云为30秒,阿里云为40秒)。如何配置云函数超时时间请参考:云函数超时时间

用法:llm.chatCompletion(Object ChatCompletionOptions)

参数说明ChatCompletionOptions

参数 类型 必填 默认值 说明 兼容性说明
messages array - 提问信息
model string 默认值见下方说明 模型名称。每个AI Provider有多个model,见下方说明 百度文心一言不支持此参数
maxTokens number - 【已废弃,请使用tokensToGenerate替代】生成的token数量限制,需要注意此值和传入的messages对应的token数量相加不可大于4096 百度文心一言不支持此参数
tokensToGenerate number 默认值见下方说明 生成的token数量限制,需要注意此值和传入的messages对应的token数量相加不可大于4096 百度文心一言不支持此参数
temperature number 1 较高的值将使输出更加随机,而较低的值将使输出更加集中和确定。建议temperature和top_p同时只调整其中一个 百度文心一言不支持此参数
topP number 1 采样方法,数值越小结果确定性越强;数值越大,结果越随机 百度文心一言不支持此参数
stream boolean false 是否使用流式响应,见下方流式响应章节 百度文心一言不支持此参数

messages参数说明

需注意messages末尾有个s,它是数组,而不是简单的字符串。其中每项由消息内容content和角色role组成。

一个最简单的示例:

await llm.chatCompletion({
  messages: [{
    role: 'user',
    content: '你好'
  }]
})

复制代码

role,即角色,有三个值:

  • system 系统,对应的content一般用于对话背景设定等功能。system角色及信息如存在时只能放在messages数组第一项。baidu不支持此角色
  • user 用户,对应的content为用户输入的信息
  • assistant ai助手,对应的content为ai返回的信息

当开发者需要为用户的场景设置背景时,则需在云端代码写死system,而用户输入的问题则被放入user中,然后一起提交给LLM。

例如,提供一个法律咨询的ai咨询助手。

开发者可以在system里限制对话背景,防止ai乱答问题。然后给用户提供输入框,假使用户咨询了:“谣言传播多少人可以定罪?”,那么拼接的message就是:

const messages = [{
    role: 'system',
    content: '你是一名律师,回答内容仅限法律范围。'
  },{
    role: 'user',
    content: '谣言传播多少人可以定罪?'
  }]

复制代码

对于不支持system的情况,如baidu,只能把system对应的内容写到第一条user信息内,也可以达到一定范围内的控制效果。

注意:对于法律、医学等专业领域需要准确回答的,建议使用gpt-4模型。其他模型更适合闲聊、文章内容生成。

assistant这个角色的内容,是ai返回的。当需要持续聊天、记忆前文时,需使用此角色。

因为LLM没有记忆能力,messages参数内需要包含前文,LLM才能记得之前聊天的内容。

以下的messages示例,是第二轮ai对话时发送的messages的示例。在这个示例中,第一个user和assistant的内容,是第一轮ai对话的聊天记录。 最后一个user是第二轮对话时用户提的问题。

因为用户提问的内容“从上述方法名中筛选首字母为元音字母的方法名”,其中有代词“上述”,为了让ai知道“上述”是什么,需要把第一轮的对话内容也提交。

const messages = [{
    role: 'system',
    content: '以下对话只需给出结果,不要对结果进行解释。'
  },{
    role: 'user',
    content: '以数组形式返回nodejs os模块的方法列表,数组的每一项是一个方法名。'
  }, {
    role: 'assistant',
    content: '以下是 Node.js 的 os 模块的方法列表,以数组形式返回,每一项是一个方法名:["arch","cpus","endianness","freemem","getPriority","homedir","hostname","loadavg","networkInterfaces","platform","release","setPriority","tmpdir","totalmem","type","uptime","userInfo"]'
  }, {
    role: 'user',
    content: '从上述方法名中筛选首字母为元音字母的方法名,以数组形式返回'
  }]

复制代码

在持续对话中需注意,messages内容越多则消耗的token越多,而LLM都是以token计费的。

token是LLM的术语,ai认知的语言是经过转换的,对于英语,1个token平均是4个字符,大约0.75个单词;对于中文,1个汉字大约是2个token。

如何在节省token和保持持续对话的记忆之间平衡,是一个挺复杂的事情。开发者需在适合时机要求ai对上文进行总结压缩,下次对话传递总结及总结之后的对话内容以实现更长的对话。

DCloud在uni-im和uni-cms中, 已经写好了这些复杂逻辑。开发者直接使用DCloud封装好的开源项目模板即可。

在上述例子中,还可以看到一种有趣的用法,即要求ai以数组方式回答问题。这将有利于开发者格式化数据,并进行后置增强处理。

model参数说明

每个AI Provider可以有多个model,比如对于openai,ChatGPT的模型是gpt-3.5-turbo,而gpt-4的模型就是gpt-4。不同模型的功能、性能、价格都不一样。

也有一些AI Provider只有一个模型,此时model参数可不填。

如果您需要非常精准的问答,且不在乎成本,推荐使用gpt-4。如果是普通的文章内容生成、续写,大多数模型均可胜任。

服务商 接口 模型
openai chatCompletion gpt-4、gpt-4-0314、gpt-4-32k、gpt-4-32k-0314、gpt-3.5-turbo(默认值)、gpt-3.5-turbo-0301
minimax chatCompletion abab4-chat、abab5-chat(默认值)

tokensToGenerate参数说明

tokensToGenerate指生成的token数量限制,即返回的文本对应的token数量不能超过此值。注意这个值不是总token。此参数名称后续可能改名。

注意此值和传入messages对应的token数量,两者相加不可大于4096。如果messages对应的token数为1024,当传递的tokensToGenerate参数大于(4096-1024)时接口会抛出错误。

未指定provider时默认最多生成512个token的结果,也就是返回结果不会很长。如有需求请自行调整此值。此默认值为512(在HBuilderX alpha 3.7.13版本默认为128)

chatCompletion方法的返回值

参数 类型 必备 默认值 说明 兼容性说明
id string openai必备 - 本次回复的id 仅openai返回此项
reply string - ai对本次消息的回复
choices array<object> - 所有生成结果 百度文心一言不返回此项
|--finishReason string - 截断原因,stop(正常结束)、length(超出maxTokens被截断)
|--message object - 返回消息
  |--role string - 角色
  |--content string - 消息内容
usage object - 本次对话token消耗详情
|--promptTokens number - 输入的token数量 minimax不返回此项
|--completionTokens number - 生成的token数量 minimax不返回此项
|--totalTokens number - 总token数量

4、简单示例

在你的云函数中加载uni-cloud-ai扩展库,写下如下代码,ctrl+r运行,即可调用ai返回结果。

const llmManager = uniCloud.ai.getLLMManager()
const res = await llmManager.chatCompletion({
	messages: [{
		role: 'user',
		content: 'uni-app是什么,20个字以内进行说明'
	}]
})
console.log(res);

5、流式响应

新增于HBuilderX正式版 3.7.10+, alpha版 HBuilderX 3.8.0

访问AI聊天接口时,如生成内容过大,响应时间会很久,前端用户需要等待很长时间才会收到结果。

实际上AI是逐渐生成下一个token的,所以可使用流式响应,类似不停打字的打字机那样,让前端用户陆续看到AI生成的内容。

以往云函数只有return的时候,才能给客户端返回消息。在流式响应中,需要云函数支持sse,在return前给客户端一直发送通知。

uniCloud的云函数,基于uni-push2,于 HBuilderX 新版提供了sse通道,即云函数请求中的中间状态通知通道。

在调用chatCompletion接口时传递参数stream: true即可开启流式响应。

其他说明

 费用

  • 如果您自己去ai厂商申请和缴费,比如openai,则缴费后在uni-ai中配置相关key即可使用。
  • 如果您使用uni-ai自动分配的ai服务,目前也是免费的。未来若计费会提前公告。未来计费原则也必然是市场标准价格,不会出现歧视性、收割性定价。

常见用途场景

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

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

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

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

ai会使用互联网上的数据进行学习训练,但训练语料不会包含最新的知识和互联网上未公开的知识。比如openai的训练数据是2021年9月以前的数据。

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

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

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

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

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

目前gpt-4未开放微调,但uni-ai正在开发其他私有数据训练方案,后续会升级提供。

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

另外想得到良好的推理结果,优化prompt前文也非常重要。文章来源地址https://www.toymoban.com/news/detail-545237.html

到了这里,关于使用uniapp做ai开发,太简单了。无论是chatgpt还是国内的大语言模型,都可以随意使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【花雕学AI】真是太多了:汇总国内免费在线使用ChatGPT的完整镜像站列表大全(1000+)

    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)

    2023年04月26日
    浏览(45)
  • 除了chatGPT网站外,国内有些可以使用的AI网站 文心一言 讯飞星火 豆包 通义千问 人工智能网站 AI网站

    2023年随着人工智能技术的不断发展,AI网站如ChatGPT等越来越受到人们的关注。这些网站具有多种作用,可以帮助人们更方便地获取信息、解决问题,甚至进行创作。 首先,AI网站可以提供智能问答服务。与传统的搜索引擎相比,AI网站能够更好地理解用户的问题,并提供更为

    2024年02月04日
    浏览(74)
  • Mysql中如果建立了索引,索引所占的空间随着数据量增长而变大,这样无论写入还是查询,性能都会有所下降,怎么处理?

    索引所占空间的增长确实会对MySQL数据库的写入性能和查询性能造成影响,这主要是由于索引数据过多时会导致磁盘I/O操作变得非常频繁,从而使性能下降。为此,可以采取以下几种方式来减缓这种影响:   1. 限制索引的大小:可以考虑为索引指定大小限制,在存储时仅存储

    2023年04月23日
    浏览(45)
  • ChatGPT国内版AI助手工具peropure·AI

    ​ ​ 从ChatGPT的惊艳登场到Midjourney的颠覆业界,毫无疑问AI技术已经成为新时代最具影响力的。为了把最前沿的AI技术带给普通用户,与清越科技合作推出了对话式智能服务ai助手——peropure·AI。 智能服务ai助手——peropure·AI下载如下: https://blog.csdn.net/tubage2023/article

    2024年02月02日
    浏览(43)
  • 【花雕学AI】如何避免ChatGPT封号,安全稳定地使用ChatGPT的技巧和简单过渡办法

    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)

    2024年02月03日
    浏览(68)
  • chatGPT 国内版,嵌入midjourney AI创作工具

    聊天GPT国内入口,免切网直达,可直接多语言对话,操作简单,无需复杂注册,智能高效,即刻使用.可以用作个人助理,学习助理,智能创作、新媒体文案创作、智能创作等各种应用场景! 地址: https://ai.wboat.cn/ 

    2024年02月03日
    浏览(41)
  • 拥抱还是革命,ChatGPT时代 AI专家给出15条科研生存之道

    来源:专知   微信号:Quan_Zhuanzhi 你是学术机构的人工智能研究员吗?你是否担心自己无法应对当前人工智能的发展步伐?您是否觉得您没有(或非常有限)访问人工智能研究突破所需的计算和人力资源?你并不孤单; 我们有同样的感觉。越来越多的人工智能学者不再能找到资源在

    2023年04月22日
    浏览(41)
  • 限制力度加强,国内还有哪些免费ChatGPT AI助手?

    这两天在使用国内的AI助手插件Monica时候发现,使用其回答问题时总是报错,需要连接外网才可以正常使用。和其他用户交流也发现Monica也已经对付费用户进行退费处理,估计短时间内国内用户不可以再使用这个插件了。作为一款性能强大的ChatGPT人工智能插件,也是受到了限

    2024年02月09日
    浏览(48)
  • 比肩 ChatGPT,国内快速访问的强大 AI 工具 Claude

    作者 :明明如月学长, CSDN 博客专家,蚂蚁集团高级 Java 工程师,《性能优化方法论》作者、《解锁大厂思维:剖析《阿里巴巴Java开发手册》》、《再学经典:《EffectiveJava》独家解析》专栏作者。 热门文章推荐 : (1)《人工智能时代,软件工程师们将会被取代?》 (2)

    2023年04月16日
    浏览(62)
  • 国内的几款强大的智能ChatGPT—AI语言模型

    · 🤖 支持 gpt4v 多模态 / gpt-3.5 / claude / 上传附件分析 · 🎨 支持 AI绘画 · 🆓 每天十次免费使用机会 · 🪄 无需魔法 https://yiyan.baidu.com/welcome 大家如果像我的界面一样有【开始体验】就是可以使用的,否则就是说明在等待中! 优点:会画画,没有使用次数限制 缺点:怎么说

    2024年02月14日
    浏览(63)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包