本文将介绍如何使用诸如dashscope、zhipuai等大模型厂商提供的Python库,在终端中与AI互动,实现文本和图片的生成。
以下内容涉及环境配置、库的安装、API密钥的获取,以及简单脚本的编写。这些步骤将帮助你轻松地尝试并探索人工智能的强大功能。
前提条件
拥有Python环境,如果尚未安装Python,访问Python官网下载并安装
安装Python库
打开PowerShell或命令提示符,使用pip安装dashscope库
# 安装库
pip install dashscope
# 更新库
pip install --upgrade dashscope
创建API-KEY
访问阿里云DashScope官方网站创建账号并登录
开通并创建一个新的API-KEY,记下生成的API-KEY
设置环境变量
PowerShell
# 输入以下命令以设置临时环境变量。将YOUR_DASHSCOPE_API_KEY替换为实际API-KEY。
$env:DASHSCOPE_API_KEY = "YOUR_DASHSCOPE_API_KEY"
# 如果希望环境变量持久化(即,环境变量在重启后依然有效),执行以下命令:
[Environment]::SetEnvironmentVariable("DASHSCOPE_API_KEY", "YOUR_DASHSCOPE_API_KEY", "User")
# 重启终端生效
命令提示符
# 输入以下命令以设置临时环境变量。将YOUR_DASHSCOPE_API_KEY替换为实际API-KEY。
set DASHSCOPE_API_KEY=YOUR_DASHSCOPE_API_KEY
# 如果希望环境变量持久化(即,环境变量在重启后依然有效),执行以下命令:
setx DASHSCOPE_API_KEY "YOUR_DASHSCOPE_API_KEY"
# 重启终端生效
创建Python脚本
创建一个名为qwen-max.py
的Python脚本,并粘贴以下代码:
import random
import sys
from http import HTTPStatus
import dashscope
def call_with_user_input(user_message):
messages = [{"role": "user", "content": user_message}]
response = dashscope.Generation.call(
"qwen-max",
messages=messages,
seed=random.randint(1, 10000),
result_format='message',
)
if response.status_code == HTTPStatus.OK:
print(response.output.choices[0].message.content)
else:
print('Request id%s, Status code: %s, error code: %s, error message: %s' % (
response.request_id, response.status_code,
response.code, response.message
))
if __name__ == '__main__':
# 检查是否提供了命令行参数(即用户直接在命令行中输入了问题)
if len(sys.argv) > 1:
user_message = " ".join(sys.argv[1:]) # 将所有命令行参数连接成一个字符串
else:
# 如果没有提供命令行参数,提示用户输入问题
print("Please enter your question:")
user_message = input() # 等待用户输入
call_with_user_input(user_message)
运行方法
在脚本所在目录下,通过以下方式运行脚本:
# 直接在命令行中指定问题:
python qwen-max.py 你的问题
# 运行脚本后按提示输入问题:
python qwen-max.py
简化命令
创建一个名为qwen.bat
的批处理文件,并输入以下内容:
@echo off
python "D:\MyScripts\qwen-max.py" %*
将批处理文件所在路径添加到环境变量中
# Powershell
$userPath = [Environment]::GetEnvironmentVariable("PATH", "User")
$newPath = $userPath + "D:\MyScripts;"
[Environment]::SetEnvironmentVariable("PATH", $newPath, "User")
这样,可以简单地使用以下命令
qwen 你的问题
ChatGLM
注册网址:智谱开放平台
Python库:pip install zhipuai
pip install --upgrade zhipuai
环境变量:ZHIPUAI_API_KEY
glm-4.py
import sys
import os
from zhipuai import ZhipuAI
# Retrieve API key from environment variable
api_key = os.environ.get("ZHIPUAI_API_KEY")
if not api_key:
print("API key is not set.")
sys.exit(1)
# Initialize the client
client = ZhipuAI(api_key=api_key)
# Check if command-line arguments are provided
try:
if len(sys.argv) > 1:
user_message = " ".join(sys.argv[1:])
else:
print("Please enter your question:")
user_message = input()
# Call the API
response = client.chat.completions.create(
model="glm-4", # Replace with the model you want to use
messages=[
{"role": "user", "content": user_message}
],
)
# Print the response
print(response.choices[0].message.content)
except Exception as e:
print(f"An error occurred: {e}")
glm-4.py
连续提问,注意修改脚本中对话历史的目录history_dir
,使用glm clear
清除对话记录
import sys
import os
import json
from zhipuai import ZhipuAI
# 从环境变量获取 API 密钥
api_key = os.environ.get("ZHIPUAI_API_KEY")
if not api_key:
print("API 密钥未设置。")
sys.exit(1)
# 初始化客户端
client = ZhipuAI(api_key=api_key)
# 指定保存对话历史的目录
history_dir = r'D:\Software\Scripts'
# 确保目录存在,如果不存在则创建
if not os.path.exists(history_dir):
os.makedirs(history_dir)
# 对话历史文件的完整路径
history_file = os.path.join(history_dir, 'conversation_history.json')
# 如果对话历史文件存在,则加载历史记录
if os.path.exists(history_file):
with open(history_file, 'r', encoding='utf-8') as f:
messages = json.load(f)
else:
messages = []
try:
if len(sys.argv) > 1:
user_message = " ".join(sys.argv[1:])
else:
print("请输入您的问题:")
user_message = input()
if user_message.lower() == 'clear':
# 删除历史文件,重置对话
if os.path.exists(history_file):
os.remove(history_file)
print("对话历史已重置。")
sys.exit(0)
# 将用户消息添加到对话历史
messages.append({"role": "user", "content": user_message})
# 提示用户正在生成回复
print("正在生成,请稍后...")
# 使用对话历史调用 API
response = client.chat.completions.create(
model="glm-4-plus",
messages=messages,
)
# 获取助手的回复
assistant_message = response.choices[0].message.content
# 将助手的回复添加到对话历史
messages.append({"role": "assistant", "content": assistant_message})
# 保存更新后的对话历史
with open(history_file, 'w', encoding='utf-8') as f:
json.dump(messages, f, ensure_ascii=False, indent=2)
# 显示助手的回复
print(assistant_message)
except Exception as e:
print(f"发生错误:{e}")
glm.bat
@echo off
python "D:\MyScripts\glm-4.py" %*
cogview-3.py
import sys
import os
from zhipuai import ZhipuAI
# 从环境变量中获取API密钥
api_key = os.environ.get("ZHIPUAI_API_KEY")
if not api_key:
print("API key is not set.")
sys.exit(1)
# 初始化客户端
client = ZhipuAI(api_key=api_key)
# 检查是否提供了命令行参数
try:
if len(sys.argv) > 1:
user_message = " ".join(sys.argv[1:])
else:
print("Please enter your description:")
user_message = input()
# 调用API
response = client.images.generations(
model="cogview-3",
prompt=user_message,
)
# 打印响应
print(response.data[0].url)
except Exception as e:
print(f"An error occurred: {e}")
cogview.bat
@echo off
python "D:\MyScripts\cogview-3.py" %*
评论区