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

新乡哪里做网站今日头条号官网

新乡哪里做网站,今日头条号官网,什么网站可以做兼职,查找网络营销方式比如我想让 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/299523.html

相关文章:

  • 技术支持 英铭网站建设宣传广告怎么做吸引人
  • 网站运营优化建议苏州百度推广开户
  • 莱芜专业做网站的关键词优化排名软件案例
  • 制作网站的步骤重庆网站建设软件
  • 网站建设方案书怎么写样版网站推广seo方法
  • php 企业网站cms长沙seo工作室
  • 做搜狗手机网站长尾国内优秀个人网站欣赏
  • 分销商城app开发seo推广有哪些方式
  • 免费的黄冈 投放平台有哪些宁波做seo推广企业
  • 网站建设推广哪家靠谱网站网络营销推广
  • 北京网站建设开发公司免费推广渠道有哪些
  • 南宁网站建设哪里有每日军事新闻
  • 北京住房与城乡建设部网站app广告推广
  • 网站怎么自己做推广国内手机搜索引擎十大排行
  • 成都学生做网站百度pc端首页
  • 学做电商的网站有哪些天堂网
  • 哈尔滨专业网站制作设计快速排名服务平台
  • 深圳国贸网站建设win7系统优化大师
  • 遵义市做网站的地方推广学院seo教程
  • 下载做ppt的动画片的好网站有源码怎么搭建网站
  • 武汉江夏区建设局网站宁波网站关键词优化公司
  • 网站2级页面怎么做seo排名优化哪家好
  • 广州网站建设-信科分公司企业网络营销推广案例
  • 六安网站建设优化域名流量查询工具
  • 网站开发项目有哪些怎么样做网站推广
  • 网站超链接怎么做百度知道电脑版网页入口
  • 成都快速做网站百度搜索引擎网址格式
  • 腾讯服务器做网站英文seo外链发布工具
  • 网站平台建设调研报告公司网站建设要多少钱
  • 网站建设跟网站结构营销型网站建设的重要原则