Day2-人工智能开发
ChatGPT API 入门
简介
- 掌握 ChatGPT API 的基本应用。
- 完成 API 密钥和环境的设置
- 完成 API 基本调用
知识模块
- L3. 基于 ChatGPT 的进阶应用
教程地址
教程地址 | 教程视频地址 |
---|---|
零样本提示 | 零样本提示 |
少样本提示 | 少样本提示 |
思维链 | 思维链 |
RAG 检索增强生成 | RAG 检索增强生成 |
React 推理提示 | React 推理提示 |
利用人工智能自动找 bug | 利用人工智能自动找 bug |
课堂练习
环境准备
- 使用每个人的个人token,通过学院提供的服务间接访问OpenAI API官方API的接口,支持GPT3.5、Embedding等模型。每日的使用量设置的有上限,但是比较大,一般不影响正常使用。
在代码中设置:
import os
os.environ["OPENAI_API_KEY"] = "your personal token" # 将个人token替换到这个位置
os.environ["OPENAI_BASE_URL"] = "https://apitoken.ceba.ceshiren.com/openai/v1/"
os.environ["OPENAI_API_BASE"] = "https://apitoken.ceba.ceshiren.com/openai/v1/"
练习1:基本的 API 调用示例
要求:
- 使用 API 发送一个简单的问题并接收 ChatGPT 的回答。
- 修改脚本,发送不同的问题并观察 ChatGPT 的回应。
- 修改参数如
temperature
、max_tokens
、top_k
等,以生成不同风格的回复。 - 比较不同参数设置下的生成结果,理解每个参数的作用。
创建一个多轮对话的聊天机器人
需求:
- 编写代码进行多轮对话,设计一个聊天机器人,能够处理用户的连续问题并保持上下文。
- 使用循环和条件来处理不同的用户输入。
实现要求:
- 编写一个Python脚本,初始化对话上下文
- 使用循环接收用户输入,并根据上下文生成回复
- 再对话结束添加结束条件(如用户输入
退出
)
实现一个智能问答系统
需求:
- 使用 ChatGPT API 结合文档内容来回答用户的问题。
- 设计一个系统,将用户的问题与文档内容进行匹配,并生成相应的回答。
实现要求:
- 准备一个包含信息的文档。
- 编写一个 Python 脚本,加载文档并根据用户的问题生成回答。
- 使用 API 进行调用,并优化提取的回答。
实战代码
基本的 API 调用示例
def ask_question(prompt, temperature=0.7, max_tokens=100, top_p=1.0):
response = openai.chat.completions.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": prompt}],
temperature=temperature,
max_tokens=max_tokens,
top_p=top_p
)
return response.choices[0].message.content
# 发送简单的问题
question = "法国的首都是哪里?"
print(f"问题: {question}")
answer = ask_question(question)
print(f"回答: {answer}")
# 发送不同的问题并观察 ChatGPT 的回应
question2 = "《杀死一只知更鸟》的作者是谁?"
print(f"\n问题: {question2}")
answer2 = ask_question(question2)
print(f"回答: {answer2}")
# 修改参数以生成不同风格的回复
question3 = "讲个笑话吧。"
print(f"\n问题: {question3}")
# 使用不同的参数进行调用
print("\n默认参数:")
default_answer = ask_question(question3)
print(f"回答: {default_answer}")
print("\n高 temperature (1.0):")
high_temp_answer = ask_question(question3, temperature=1.0)
print(f"回答: {high_temp_answer}")
print("\n低 temperature (0.3):")
low_temp_answer = ask_question(question3, temperature=0.3)
print(f"回答: {low_temp_answer}")
print("\n低 max_tokens (50):")
low_tokens_answer = ask_question(question3, max_tokens=50)
print(f"回答: {low_tokens_answer}")
print("\n高 max_tokens (150):")
high_tokens_answer = ask_question(question3, max_tokens=150)
print(f"回答: {high_tokens_answer}")
print("\n低 top_p (0.5):")
low_top_p_answer = ask_question(question3, top_p=0.5)
print(f"回答: {low_top_p_answer}")
print("\n高 top_p (0.9):")
high_top_p_answer = ask_question(question3, top_p=0.9)
print(f"回答: {high_top_p_answer}")
创建一个多轮对话的聊天机器人
conversation = [
{"role": "system", "content": "你是一个智能回答小助手"}
]
print("开始聊天吧,输入`exit`退出聊天")
while True:
user_input = input("You: ")
if user_input.lower() == "exit":
break
conversation.append({"role": "user", "content": user_input})
response = openai.chat.completions.create(
model="gpt-3.5-turbo",
messages=conversation
)
bot_response = response.choices[0].message.content
conversation.append({"role": "assistant", "content": bot_response})
print(f"小助手: {bot_response}")
实现一个智能问答系统
document = """
[在这里插入长文档内容]
"""
print("根据文档内容提问吧(输入 'exit' 退出):")
while True:
user_input = input("You: ")
if user_input.lower() == "exit":
break
messages = [
{"role": "system", "content": "你是一个智能问答小助手"},
{"role": "user", "content": f"Document: {document}"},
{"role": "user", "content": f"Question: {user_input}"}
]
response = openai.chat.completions.create(
model='gpt-3.5-turbo',
messages=messages,
max_tokens=100,
temperature=0.5
)
answer = response.choices[0].message.content
print(f"Answer: {answer}")
总结
- 配置个人 Token 环境
- 掌握 ChatGPT API 的调用方式