当前位置: 首页 > wzjs >正文

免费做的网站怎么设置域名西安seo网站建设

免费做的网站怎么设置域名,西安seo网站建设,wordpress导航栏二级层自定义,做单屏网站 高度是多少比如我想让 AI 帮我发个邮件: AI 你好,请帮我发一封邮箱给: 收件人:xxxx.com 邮件主题:hi 李雷 邮件内容:I am 韩梅梅 AI 可以聊天,可以生成图片,可以生成视频,那它…

比如我想让 AI 帮我发个邮件:

AI 你好,请帮我发一封邮箱给:

收件人:xx@xx.com

邮件主题:hi 李雷

邮件内容:I am 韩梅梅

AI 可以聊天,可以生成图片,可以生成视频,那它能发邮件吗?

 

一般来说互联网版本的 AI 可以帮我们拟邮件内容与标题,但不会给我们自动发邮件,毕竟这操作就和病毒一样有点可怕。当然如果是在自己本地的私有化 AI 来说这就是可以实现的功能。

如何给 AI 赋予发邮件的能力?

随着 OpenAI 推出的“Function Calling”功能,通过 Function Calling,大模型能够通过结构化输入连接到外部系统,比如通过 API 进行交互,从而实现与外部世界的连接。

通过Function Calling AI 可以与外部工具和服务连接起来,这样 AI 的能力就非常的广阔。这样可以打造更智能、更强大的人工智能。
Function Calling 技术的不断发展,我们相信它将在未来的 AI 应用中发挥越来越重要的作用。

 

下面我们来具体看看Function Calling:

一、Function Calling概述

 

故事的开端来源于 OpenAI 的这次升级,“Function calling and other API updates”。

对于AI 需求,我们远远不止于希望 AI 只能生成文本,也希望能 AI 可以执行具体的任务,比如查询数据库、发送邮件、生成表格等等。早期,我们通过“指令微调”(Instruction Tuning)让模型理解并执行特定指令,但这种方式存在一些局限。

为了解决这个问题, Function Calling(函数调用)出现了。Function Calling 允许我们将具体的功能以函数的形式定义出来,模型在生成文本时,可以主动调用这些函数,从而实现复杂任务的执行。

Function Calling 的核心思想是:模型生成的不仅是文本,还可能是对具体函数的调用,以及调用所需的参数。这种机制使得模型能够更灵活、更安全、更高效地执行各种任务。

二、Function Calling原理

 

Function Calling 的实现原理主要分为以下几个步骤:

  1. 定义函数:将具体的功能封装成函数,定义函数的名称、入参和返回值。
  2. 函数映射:将函数的信息(如名称、参数类型等)映射到模型可理解的 Json 格式。
  3. 模型生成函数调用:在与模型的交互中,提示模型生成函数调用的 JSON 对象,而不是直接生成结果。
  4. 解析并执行函数调用:解析模型生成的 JSON 对象,调用相应的函数,并将函数的返回结果反馈给模型。
  5. 模型根据函数返回结果生成最终答案:模型根据函数的执行结果,生成最终的回复或继续进行交互。

其实Function Calling 的本质还是很简单的,就是和 AI 聊天,AI 解析聊天内容,触发生成调用函数的对象,程序根据 AI 生成的参数判断调用函数。本质上还是自己的程序在调用函数,不过中间有 AI 的交互。

如 AI 给我们生成邮件内容,然后告诉我们可以用这个去调用我们发邮件的函数或接口了。感觉是对智能体能力的扩展。

官方也给出了示例,也是非常简单的。

 

三、实战LLaMA实现自动发邮件

 

接下来,我们将基于LLaMA 3.2-1B 模型,实现一个简单的自动发邮件功能。我们将使用 Function Calling 的机制,让模型在需要发送邮件时,调用我们定义的 send_email 函数。

3.1 环境配置

首先,本地得安装以下依赖:

  • transformers: Hugging Face 的 Transformers 库,用于加载和使用预训练模型。
  • datasets: Hugging Face 的 Datasets 库,用于加载数据集。
  • smtplib: Python 内置库,用于发送邮件。

你可以使用以下命令安装所需的库:

pip install transformers datasets

3.2 加载模型和分词器

使用 Hugging Face 的 AutoModelForCausalLMAutoTokenizer 来加载 LLaMA 模型和分词器。

from transformers import AutoModelForCausalLM, AutoTokenizermodel_name = "llama-3.2-1b"  tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)

3.3 定义send_email

定义一个 send_email 函数,用于发送邮件。这个函数接受收件人、主题和正文作为参数。

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipartdef send_email(to, subject, body):# 请替换为你的邮件服务器配置smtp_server = "smtp.qq.com"smtp_port = 587smtp_username = "xx"smtp_password = "xx"msg = MIMEMultipart()msg["From"] = smtp_usernamemsg["To"] = tomsg["Subject"] = subjectmsg.attach(MIMEText(body, "plain"))with smtplib.SMTP(smtp_server, smtp_port) as server:server.starttls()server.login(smtp_username, smtp_password)server.sendmail(smtp_username, to, msg.as_string())return f"邮件已成功发送至 {to}"

3.4 构建 Function Calling 对话

构建一个对话系统,模拟用户与模型的交互。在这个对话中,模型可以根据用户的指令,调用 send_email 函数发送邮件。

def main():functions = [{"name": "send_email","description": "发送一封邮件","parameters": {"type": "object","properties": {"to": {"type": "string","description": "收件人邮箱地址",},"subject": {"type": "string","description": "邮件主题",},"body": {"type": "string","description": "邮件正文",},},"required": ["to", "subject", "body"],},},]messages = [{"role": "system", "content": "你是一个可以帮助用户发送邮件的助手。"},]while True:user_input = input("你: ")messages.append({"role": "user", "content": user_input})# 将 messages 转换为模型可接受的输入格式prompt = ""for message in messages:if message["role"] == "system":prompt += f"<system>{message['content']}</system>\n"elif message["role"] == "user":prompt += f"<user>{message['content']}</user>\n"elif message["role"] == "assistant":prompt += f"<assistant>{message['content']}</assistant>\n"# 生成模型回复inputs = tokenizer.encode(prompt, return_tensors="pt")outputs = model.generate(inputs, max_length=512)response = tokenizer.decode(outputs[0], skip_special_tokens=True)# 提取模型生成的函数调用if "send_email" in response:# 这里我们简化处理,直接提取参数to = input("请输入收件人邮箱地址: ")subject = input("请输入邮件主题: ")body = input("请输入邮件正文: ")result = send_email(to, subject, body)print(f"助手: {result}")messages.append({"role": "assistant", "content": result})else:print(f"助手: {response}")messages.append({"role": "assistant", "content": response})

3.5 运行程序

运行程序后,你可以输入一些指令,看看模型是否会调用 send_email 函数发送邮件。

例如:

你: 帮我发送一封邮件给 xx@xx.com,主题是“测试邮件”,内容是一封感谢信,具体内容你帮我写。

程序会提示你输入收件人邮箱地址、主题和正文,然后发送邮件并返回结果。

 

我是栈江湖,如果你喜欢此文章,不要忘记点赞+关注

 

http://www.dtcms.com/wzjs/185797.html

相关文章:

  • wordpress企业仿站视频教程竞价系统
  • 网站开发年薪友情链接交换的作用在于
  • 电商网站开发 上海中国营销传播网
  • 合肥网站设计 goz国内专业的seo机构
  • 怎么做网站推广知乎百度招聘平台
  • 坑梓网站建设服务项目哪里做网络推广
  • 网站建设的目标有哪些公司网站设计图
  • 政府门户网站群建设方案佛山今日头条
  • 网站首页面设计代码人民日报官网
  • 金融做网站seo需要培训才能找到工作吗
  • 旅社网站建设网站页面seo
  • 顺义做网站公司网页设计模板网站
  • ps如何做网站软文之家
  • 网站域名 邮箱google登录入口
  • 通辽做网站有没有网站推广多少钱一年
  • 企业员工信息管理系统郑州seo排名优化
  • 监控视频怎么做直播网站友情链接qq群
  • 中学生在哪里学编程最好网站内部链接优化方法
  • 做网站前宜昌网站建设公司
  • 舆情分析报告范文seo专员工资待遇
  • 网站设计制作的连接方式网络运营推广怎么做
  • 火星wap建站搭建个人网站
  • 天津seo推广方法谷歌优化推广
  • 网站开发如何做账务处理关键词搜索推广排行榜
  • 响应式网站建设必推全网天下外贸推广平台有哪几个
  • mobi域名网站推广计划方案
  • 邢台做网站哪家公司好网络推广人员
  • 自己做坑人网站的软件成都网站建设方案托管
  • 网站开发销售话术引擎优化seo怎么做
  • 2021网站建设前景怎么样谷歌站长平台