使用uv创建一个python的项目
py
# 初始化项目
uv init ai-project
# 创建虚拟环境 非必要执行 使用uv add 下载包的时候也会自动创建虚拟环境
# 但是虚拟环境是必须要有的,因为项目不同所使用的包的版本也不相同 除非是全局统一环境 不做任何区分
# 最终生成 .venv文件
uv venv
项目目录
plaintext
项目名/
├── .venv # 虚拟环境
├── src/
│ ├── index.py
├── .env
├── .python-version # python的版本
├── main.py
├── pyproject.toml # 相当于package.json文件 uv add 添加的包全部在此处管理
├── uv.lock
└── README.md
使用openai调用LLM
首先安装依赖
plaintext
uv add openai
配置环境变量,首先安装需要的包
plaintext
uv add python-dotenv
.env文件配置api_key、base_url
plaintext
# 不同的厂商 api_key、 base_url都不相同
DASHSCOPE_API_KEY = sk-xxxx
BASE_UR L= https://dashscope.aliyuncs.com/compatible-mode/v1
python
""" 初始化openai第一个项目 """
from openai import OpenAI
import os
from dotenv import load_dotenv
# 加载环境变量
load_dotenv()
# 创建一个openai客户端
client = OpenAI(
api_key= os.getenv("DASHSCOPE_API_KEY"),
base_url= "https://dashscope.aliyuncs.com/compatible-mode/v1"
)
# 使用客户端调用模型
completions = client.chat.completions.create(
model="qwen3-max",
messages=[
{"role": "system", "content": "你是一个ai助手,不说废话,回答用户的问题,保持回答的简洁"},
{"role": "user", "content": "你好, 请介绍一下你自己"}
],
stream=True # 流式输出 默认值是 False
)
# print(completions.choices[0].message.content) 直接输出
# 流失输出
for chunk in completions:
print(chunk.choices[0].delta.content, end="", flush=True)