使用OpenAI推理模型将文档转化为可操作的流程

2025年01月26日 由 alex 发表 2131 0

我喜欢OpenAI推理模型的这种实现方式,因为它能够将知识文章转化为带有条件的一系列事件。


o1模型凭借其先进的推理能力,似乎非常适合创建将知识文章转化为流程常规的例程。


它能够处理复杂的结构化信息,而无需大量的预先训练,这使它能够解构复杂的知识文章——例如那些包含多步骤指令、描述性决策树或图表的文章——转化为可操作的常规流程。


通过利用其零样本能力,o1能够高效地解释并将任务分解为清晰、可管理的步骤,而无需大量的提示或微调。


8


通过利用大型语言模型(LLM)识别模式和关系的能力,它们填补了文本信息与可操作的、结构化的表示之间的鸿沟,使它们非常适合从知识文章创建流程等任务。


文章转化为常规流程

手动将知识库文章转化为可操作的常规流程或过程是一个复杂且耗时的过程,特别是对于旨在构建自动化管道的公司而言。


每个常规流程都必须应对不同的用户场景,并具有明确定义的动作。


O1已展示出能够解构文章并以零样本效率将其转化为常规流程的能力,这意味着LLM可以在不需要大量示例或先前特定任务训练的情况下解释和遵循指令。


这显著减少了提示所需的工作量,因为常规流程的结构本身为LLM执行每个步骤提供了必要的指导。


通过将任务分解为不同的动作,并在适当位置融入函数调用,O1的方法使LLM能够无缝处理甚至复杂的流程。


这种方法带来了更有效、可扩展的解决方案,特别是在提升客户服务运营方面。


符号推理

LLM的符号推理能力使它们能够解释非结构化文本并将其转化为结构化、逻辑化的流程。


这些模型可以将复杂的指令或描述分解为逐步的过程,从而无缝转换为工作流、决策树或过程图。


内部知识库文章通常很复杂,且设计用于人类解释,将这些文档转化为常规流程简化了每条指令并对其进行结构化,引导LLM通过一系列小而可管理的任务。


这种细化的方法最小化了歧义,使LLM能够系统地处理信息,同时减少产生幻觉或偏离预期工作流程的可能性。


通过分解复杂性,常规流程有助于确保LLM在处理这些文档时表现更准确、更可靠。


数据源

实际演示的数据源如下所示,其中包含来自OpenAI定义的几项政策。信息以CSV格式呈现。


9


工作笔记本

以下是可直接在笔记本中复制的Python工作代码,代码会提示你输入OpenAI API密钥。你可以看到,下面定义了o1-preview模型。


接着定义了提示语,之后从GitHub仓库中获取CSV文件。


在此之后,我们定义了常规流程生成函数,结果可以以多种方式显示。


# Install required libraries
!pip install openai==0.28 pandas requests
# Import necessary libraries
import openai
import pandas as pd
import requests
import io
# Prompt the user for the OpenAI API key
api_key = input("Please enter your OpenAI API key: ").strip()
openai.api_key = api_key
# Define the model and prompt
MODEL = 'o1-preview'
CONVERSION_PROMPT = """
You are a helpful assistant tasked with converting an external-facing help center article into an internal-facing, programmatically executable routine optimized for an LLM. Please follow these instructions:
1. **Review the customer service policy carefully** to ensure every step is accounted for.
2. **Organize the instructions into a logical, step-by-step order**, using the specified format.
3. **Use the following format**:
   - **Main actions are numbered** (e.g., 1, 2, 3).
   - **Sub-actions are lettered** under their relevant main actions (e.g., 1a, 1b).
   - **Specify conditions using clear 'if...then...else' statements**.
   - **For instructions requiring more information from the customer**, provide polite and professional prompts.
   - **For actions requiring data from external systems**, write a step to call a function using backticks for the function name (e.g., `call the check_delivery_date function`).
   - **Define any new functions** by providing a brief description of their purpose and required parameters.
   - **The step prior to case resolution should always be to ask if there is anything more you can assist with**.
   - **End with a final action for case resolution**: calling the `case_resolution` function should always be the final step.
4. **Ensure compliance** by making sure all steps adhere to company policies, privacy regulations, and legal requirements.
5. **Handle exceptions or escalations** by specifying steps for scenarios that fall outside the standard policy.
Please convert the customer service policy into the formatted routine, ensuring it is easy to follow and execute programmatically.
"""
# Fetch the CSV file from the GitHub repository
url = "https://raw.githubusercontent.com/openai/openai-cookbook/main/examples/data/helpcenter_articles.csv"
response = requests.get(url)
if response.status_code == 200:
    csv_data = io.StringIO(response.text)
    articles = pd.read_csv(csv_data)
    print("CSV file loaded successfully.")
else:
    raise Exception("Failed to fetch the CSV file. Please check the URL.")
# Define the routine generation function
def generate_routine(policy_content):
    try:
        response = openai.ChatCompletion.create(
            model=MODEL,
            messages=[
                {"role": "user", "content": f"{CONVERSION_PROMPT}\n\nPOLICY:\n{policy_content}"}
            ]
        )
        return response.choices[0].message['content']
    except Exception as e:
        print(f"An error occurred: {e}")
        return None
# Process articles and generate routines
def process_article(article):
    routine = generate_routine(article['content'])
    return {"policy": article['policy'], "routine": routine}
# Convert articles to a dictionary format for processing
articles_dict = articles.to_dict(orient="records")
# Generate routines
results = [process_article(article) for article in articles_dict]
# Store and display the results
df = pd.DataFrame(results)
display(df)


该数据框可用于绘制信息图表……


10


以下是在电子表格中显示的常规流程,请注意其中的条件设置,采用了If-Else方法。


11


最后

像这样的常规流程可以集成到代理系统中,以处理特定的客户问题。


例如,如果客户需要帮助设置预付费账单,分类器可以识别正确的常规流程并提供给LLM(大型语言模型),以协助客户。


系统可以引导用户完成设置,或者为他们完成任务。

文章来源:https://cobusgreyling.medium.com/transforming-documentation-into-actionable-flows-with-openai-reasoning-models-e02cef6eef2a
欢迎关注ATYUN官方公众号
商务合作及内容投稿请联系邮箱:bd@atyun.com
评论 登录
热门职位
Maluuba
20000~40000/月
Cisco
25000~30000/月 深圳市
PilotAILabs
30000~60000/年 深圳市
写评论取消
回复取消