Python实现AI助手

目录

1.介绍

2.准备工作

(1)登录百度智能云

(2)创建应用

(3) 获取Key

3.代码实现

4.效果展示


1.介绍

        本文将介绍使用python调用百度云千帆大语言模型的API实现一个简单的AI助手,并且将在本文的第三部分贴出完整源码,供学习交流!

        如果你觉得本篇文章对你有用,希望你动动宝贵的小手,给作者整一个👍+⭐!

        其次,你还可以访问我的主页查看其他文章:

 一只程序猿子的CSDN博客

2.准备工作

(1)登录百度智能云

        登录百度智能云后,找到千帆大模型平台.

(2)创建应用

        必填项填写完成后点击创建,就完成了应用创建! 

(3) 获取Key

        Key包含API Key和Secret Key.

        现在已经获取到需要的Key了,在平台上可以找到调用API的示例代码,不过你也可以查看我下面的代码!

3.代码实现

ai_assistant.py:

# 导入 requests 库,用于发送 HTTP 请求
import requests
# 导入 json 库,用于处理 JSON 数据
import json

# 定义一个名为 AIAssistant 的类,该类用于实现 AI 助手的各项功能
class AIAssistant():

	# 初始化函数,实例化后会首先运行这个函数
	def __init__(self):
		# 定义 API_KEY 和 SECRET_KEY,它们是调用百度云AI模型API的凭证,用于鉴权和请求资源
		self.API_KEY = "换成你的Key"
		self.SECRET_KEY = "换成你的Key"
		# 设置请求头部信息,其中 Content-Type 设置为 application/json 表示发送的数据是 JSON 格式
		self.HEADER = {'Content-Type': 'application/json'}


	# 定义一个函数 get_access_token,用于获取访问令牌 Access Token
	def get_access_token(self):
		"""
		使用 AK,SK 生成鉴权签名(Access Token)
		:return: access_token,或是None(如果错误)
		"""
		# 定义 url,这是请求的目标地址
		url = "https://aip.baidubce.com/oauth/2.0/token"
		# 定义参数字典,包含鉴权所需的参数,例如 grant_type(授权类型),client_id(客户端 ID),client_secret(客户端密钥)等
		params = {"grant_type": "client_credentials", "client_id": self.API_KEY, "client_secret": self.SECRET_KEY}
		# 使用 requests.post 方法发送 POST 请求到定义的 url,并传入参数字典 params,然后将返回的 JSON 数据中的 access_token 字段转化为字符串
		access_token = str(requests.post(url, params=params).json().get("access_token"))

		return access_token


	# 定义一个函数 ai_assistant,接收一个名为 data 的列表作为参数,这个列表中包含用户输入的消息
	def ai_assistant(self, data):
		# 定义 url,拼接上通过 get_access_token 函数获取的 Access Token,用于向 AI 服务器发送请求
		url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions_pro?access_token=" + AIAssistant().get_access_token()

		# 将用户输入的消息打包成 JSON 格式的 payload(有效负载)
		payload = json.dumps({
			"messages": data
		})

		# 使用 requests.request 方法发送 POST 请求到定义的 url,并传入头部信息和 payload,然后返回响应的 JSON 数据
		response = requests.request("POST", url, headers=self.HEADER, data=payload)

		# 从响应的 JSON 数据中取出 result 字段并返回,可能包含 AI 对用户输入的回答
		return response.json()['result']


	# 定义一个函数 run,这个函数是整个 AI 助手对话的核心逻辑所在,它负责接收用户的输入并返回 AI 的回答
	def run(self):
		# 定义一个空列表 data,用于存储用户的输入和 AI 的回答
		data = []

		# 定义一些用于控制台输出的颜色代码
		COLOR_BLUE = "\033[34m"  # 绿色
		COLOR_RED = "\033[31m"  # 红色
		RESET = "\033[0m"  # 黑色
		BOLDEN = "\033[1m"  # 加粗文本

		# 打印欢迎信息,提示用户可以通过输入 'q' 来结束对话
		print(f"{BOLDEN}{COLOR_BLUE}********************欢迎使用AI助手!********************\n{RESET}(tips:输入'q'结束对话)\n")
		# 进入无限循环,除非用户输入 'q' 才结束循环
		while True:
			# 获取用户的输入
			quetion = input(f"{COLOR_RED}用  户: {RESET}")

			# 如果用户输入 'q',则跳出循环
			if quetion == 'q':
				print("再见!")
				break
			else:
				# 创建字典,包含用户的角色和内容,添加到 data 列表中
				user_massage = {"role": "user", "content": quetion}
				data.append(user_massage)

				print('*****正在生成回答,请稍后...*****')
				# 调用 ai_assistant 函数,传入用户输入的数据,获取 AI 的回答,并添加到 data 列表中
				result = AIAssistant().ai_assistant(data)

				assistant_massage = {"role": "assistant", "content": result}
				data.append(assistant_massage)

				# 从 data 列表中取出最后一条消息,也就是AI助手回答的内容,根据 role 字段判断,并输出到控制台
				answer = data[-1]['content'].replace('\n\n', '\n')
				print(f"{COLOR_RED}AI助手:{RESET} {BOLDEN}{answer}\n\n{RESET}")


# 主函数
if __name__ == '__main__':
	# 运行AI助手程序
	AIAssistant().run()

        源码中我已经添加了非常详细的注释,相信聪明的你一定能理解源码 !!!

注意:把源码里的self.API_KEY和self.SECRET_KEY换成你自己的!!!

4.效果展示

  • 14
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只程序猿子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值