【大模型从入门到精通44】LLM部署运维(LLM Ops)使用Kubeflow Pipelines掌握LLM工作流1


在这里插入图片描述

实施AI驱动的测验生成机制

在这一章节中,我们将探索创建一个AI驱动的测验生成器的应用案例,该应用展示了如何利用第三方API、数据集创建以及为AI模型设计提示。这个项目说明了AI在生成教育内容,特别是测验方面的实用应用。

第1节:准备环境

构建我们的AI驱动测验生成器的第一步涉及设置环境,并确保我们能够访问必要的第三方API。这个设置包括屏蔽警告消息,以确保在执行过程中输出干净,从而使开发过程更加顺畅和易读。

# 导入警告库来控制警告消息
import warnings

# 忽略所有警告消息,确保在执行期间输出干净
warnings.filterwarnings('ignore')

# 加载用于项目的第三方服务的API令牌
from utils import get_circle_ci_api_key, get_github_api_key, get_openai_api_key

# 获取CircleCI、GitHub和OpenAI的个人API密钥
circle_ci_api_key = get_circle_ci_api_key()
github_api_key = get_github_api_key()
openai_api_key = get_openai_api_key()
第2节:创建测验数据集

我们的测验生成器的核心是数据集,它将从中生成问题。这个数据集包含来自不同类别的主题,每个类别都有独特的事实,这些事实可以用来构建测验问题。

# 定义用于结构化测验问题的模板
quiz_question_template = "{question}"

# 初始化测验银行,其中包含主题、类别和事实
quiz_bank = """
这里有三个新的测验问题,遵循给定的格式:

1. 主题: 历史冲突  
   类别: 历史, 政治  
   事实:  
   - 开始于1914年,结束于1918年  
   - 涉及两大联盟:盟军和中央国  
   - 西线广泛使用堑壕战  

2. 主题: 革命性通信技术  
   类别: 科技, 历史  
   事实:  
   - 由亚历山大·格拉汉姆·贝尔于1876年发明  
   - 革新了远程通信  
   - 传输的第一句话是“沃森先生,请过来,我想见你”  

3. 主题: 美国标志性地标  
   类别: 地理, 历史  
   事实:  
   - 1886年由法国赠送给美国  
   - 象征自由和民主  
   - 位于纽约港的自由岛上  
"""

#### 第3节:构建测验生成提示
为了根据用户选择的类别生成定制化的测验,我们设计了一个详细的提示模板,引导AI创建测验。此模板概述了AI应遵循的步骤,从类别选择到问题生成。

```python
# 定义分隔不同部分的测验提示的分隔符
section_delimiter = "####"

# 构建一个详细的提示模板,指导AI生成定制化的测验
quiz_generation_prompt_template = f"""
生成定制化测验的指示:
每个问题由四个井号分隔,即 {section_delimiter}

用户选择测验的类别。确保问题与所选类别相关。

步骤 1: {section_delimiter} 从以下列表中识别用户选择的类别:
* 文化
* 科学
* 艺术

步骤 2: {section_delimiter} 从测验银行中选择最多两个与所选类别相符的主题:

{quiz_bank}

步骤 3: {section_delimiter} 根据选定的主题创建测验,为每个主题制定三个问题。

测验格式:
问题 1: {section_delimiter} <插入问题 1>
问题 2: {section_delimiter} <插入问题 2>
问题 3: {section_delimiter} <插入问题 3>
"""

#### 第4节:使用Langchain结构化提示
有了准备好的提示模板后,我们使用Langchain的能力将其结构化以便由AI模型处理。这包括设置聊天提示、选择AI模型以及解析其输出。

```python
# 导入Langchain中用于提示结构化和AI模型交互的必要组件
from langchain.prompts import ChatPromptTemplate
from langchain.chat_models import ChatOpenAI
from langchain.schema.output_parser import StrOutputParser

# 将详细的测验生成提示转换为AI可处理的结构化格式
structured_chat_prompt = ChatPromptTemplate.from_messages([("user", quiz_generation_prompt_template)])

# 选择用于生成测验问题的语言模型
language_model = ChatOpenAI(model="gpt-3.5-turbo", temperature=0)

# 设置输出解析器以将AI响应转换为可读格式
response_parser = StrOutputParser()
第5节:执行测验生成过程

最后,我们使用Langchain的表达语言将所有组件结合在一起,形成一个无缝的测验生成管道。

# 将结构化提示、语言模型和输出解析器连接起来形成测验生成管道
quiz_generation_pipeline = structured_chat_prompt | language_model | response_parser

# 执行管道以生成测验(执行示例未显示)

在这一节中,我们将整个AI驱动的测验生成过程的设置和执行封装在一个单一的可重用函数中。这种设计模式促进了模块化和可维护性,允许轻松调整和维护。函数generate_quiz_assistant_pipeline将所有必需的组件——提示创建、模型选择和输出解析——组合成一个连贯的工作流,可以通过自定义输入进行调用。

def generate_quiz_assistant_pipeline(user_category):
    # 使用用户提供的类别执行测验生成管道
    # 注意:这里没有展示具体的执行代码,因为需要API密钥等配置才能真正运行
    pass
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

水木流年追梦

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

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

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

打赏作者

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

抵扣说明:

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

余额充值