Want to Become a Sponsor? Contact Us Now!🎉

LLM
从入门到专家:如何成功进行Chat GPT API调用

从入门到专家:如何成功进行Chat GPT API调用

Published on

深入研究与Chat GPT API交互的微妙之处。无论您是新手还是希望改善您的聊天机器人交互,本文为您提供了有关利用gpt-3.5-turbo和gpt-4模型实现动态和引人入胜对话体验的宝贵见解。

Chat GPT API简介:强大的对话模型入口

OpenAI的Chat GPT API在人工智能领域迈出了重要一步,为开发人员提供了一个强大的平台,将复杂的对话AI整合到他们的应用程序中。这个API是GPT模型套件的一部分,不仅可以进行简单的问答设置,还可以进行涉及外部数据源、自定义逻辑甚至基于对话上下文执行特定函数的交互。这使得应用程序可以提供个性化的体验,超越预定义的响应,实时适应用户的需求。

Anakin AI - The Ultimate No-Code AI App Builder

为Chat GPT API准备开发环境

旅程从设置开发环境开始。这个准备对于与Chat GPT API的顺畅体验至关重要。以下Python库是我们在这个过程中使用的工具包的基础:

  • openai: OpenAI提供的用于与其API交互的官方库,包括Chat GPT模型。
  • scipytenacitytiktokentermcolor: 提供附加功能的辅助库,如重试逻辑、令牌管理和带颜色的终端输出,增强开发过程。
!pip install openai scipy tenacity tiktoken termcolor --quiet

安装完成后,导入这些库并初始化OpenAI客户端。这个步骤涉及指定您希望使用的GPT模型,并使用您的OpenAI API密钥进行身份验证。

import json
from openai import OpenAI
from tenacity import retry, wait_random_exponential, stop_after_attempt
from termcolor import colored
 
GPT_MODEL = "gpt-3.5-turbo-0613"
client = OpenAI(api_key="your_api_key_here")

如何创建调用Chat GPT API模型的函数

第1部分:使用Chat Completions API生成函数参数

Chat GPT API的一个突出特点是其能够动态生成函数参数。通过这一功能,可以极大地提升用户体验,实现更自然、更交互式的对话。

假设您的应用程序需要提供天气信息。您可以定义函数规范,该函数规范将指导GPT模型根据对话生成必要的参数,而不是硬编码响应或要求用户以特定格式输入数据。

tools = [
    {
        "type": "function",
        "function": {
            "name": "get_current_weather",
            "description": "获取当前天气",
            "parameters": {
                "type": "object",
                "properties": {
                    "location": {"type": "string", "description": "城市和州,例如,旧金山,加利福尼亚"},
                    "format": {"type": "string", "enum": ["celsius", "fahrenheit"], "description": "要使用的温度单位。"},
                },
                "required": ["location", "format"],
            },
        }
    }
]

通过将这些规范输入Chat GPT API,您的应用程序可以智能地提示用户提供信息,并生成准确的函数调用以检索所需的数据。

第2部分:使用Chat GPT API实现高级对话逻辑

除了为预定义的函数生成参数之外,Chat GPT API还允许执行这些函数并使用生成的参数,实现真正交互式的用户体验。

def ask_database(query):
    # 数据库查询逻辑的占位符
    return "查询结果"
 
def execute_function_call(function_name, arguments):
    if function_name == "ask_database":
        return ask_database(arguments["query"])
    else:
        raise Exception("未识别的函数")
 
# 示例用法
function_name = "ask_database"
arguments = {"query": "SELECT * FROM weather_data WHERE location = '旧金山,加利福尼亚'"}
results = execute_function_call(function_name, arguments)

这个示例突出了定义一个与数据库交互的函数(ask_database)以及如何使用由Chat GPT模型生成的参数来调用它。这为创建根据用户输入执行复杂任务的应用程序提供了无限的可能性,从预订预订到提供个性化推荐等。

第3部分:使用Chat GPT API强制特定函数的使用并探索并行函数调用

Chat GPT API的更高级功能之一是能够强制使用特定函数或并行执行多个函数。这个功能在应用程序的逻辑需要特定流程或在优化效率和速度方面时特别有用。

# 强制使用特定函数
tool_choice = {"type": "function", "function": {"name": "get_current_weather"}}

通过指定tool_choice参数,开发人员可以引导模型的决策过程,确保所执行的函数是指定的。 对话与应用的目标相一致。

此外,在较新模型中支持并行函数调用的情况下,应用现在可以处理需要来自多个来源的信息的更复杂的查询,从而显著提升用户体验。

如何为Chat GPT API模型格式化输入

与GPT模型(如gpt-3.5-turbogpt-4)一起创建引人入胜且有效的聊天交互,需要一种精细的方法来构建输入并解释输出。本详细指南将引导您完成这一过程,提供实用示例和样本代码以说明关键概念。

了解用于Chat GPT API输入格式的基本知识

ChatGPT模型的核心是一个简单但强大的前提:您提供一系列消息作为输入,模型生成一个响应。这些交互可以范围从简单的交流到涉及多个回合的复杂对话。

使用Chat GPT API进行聊天完成API调用

与ChatGPT模型的交互涉及使用精心构建的参数进行API调用。以下是必要组件的详细信息:

  • 必选参数:
    • model:指定模型版本,如gpt-3.5-turbogpt-4
    • messages:包含的消息对象列表,每个对象包含:
      • role:标识消息的作者(例如systemuserassistant)。
      • content:消息文本。
# 使用预定义的对话回合进行示例API调用
response = client.chat.completions.create(
    model="gpt-3.5-turbo",
    messages=[
        {"role": "system", "content": "你是一个有用的助手。"},
        {"role": "user", "content": "叮叮当。"},
        {"role": "assistant", "content": "谁在那儿?"},
        {"role": "user", "content": "橙子。"},
    ],
    temperature=0,
)

解释Chat GPT API的响应

在进行API调用后,您将收到一个包含多个字段的响应,其中包括生成的消息。要提取助手的回复:

# 提取助手的回复
reply = response.choices[0].message.content
print(reply)

这将打印出助手生成的消息,完成对话。

有效提示的技巧

制作有效的提示是一门艺术,可以极大地影响模型的响应质量。以下是一些技巧:

  • **系统消息:**使用系统消息来设置上下文或定义助手的角色。但请注意,某些模型版本可能对系统消息的权重不高,因此在用户消息中包含重要说明可能会有益。

  • **少样本提示:**有时,通过示例消息向模型显示您希望的内容可能比直接告诉它更有效。这种方法是创建一系列消息,以阐明所需的交互模式。

# 少样本提示的示例
response = client.chat.completions.create(
    model="gpt-3.5-turbo",
    messages=[
        {"role": "system", "content": "将企业术语翻译成简单的英语。"},
        {"role": "user", "content": "'协同我们的工作流意味着什么?'的意思是什么?"},
    ],
    temperature=0,
)
print(response.choices[0].message.content)

使用Chat GPT API管理令牌使用量

了解和管理令牌使用量对于优化API调用的成本和性能至关重要。每个消息和响应都会消耗令牌,跟踪此使用量有助于保持效率。

  • **计算令牌数量:**您可以使用tiktoken库估算一系列消息将使用的令牌数量,尽管由于潜在的模型特定变化,这应被视为近似值。
import tiktoken
 
# 估算令牌数量的函数
def estimate_token_count(messages, model="gpt-3.5-turbo"):
    # 在这里进行令牌计数逻辑
    pass
 
# 示例用法
token_estimate = estimate_token_count(messages, model="gpt-3.5-turbo")
print(f"估算的令牌数量:{token_estimate}")

通过遵循这些准则并尝试不同的方法,可以充分发挥ChatGPT模型的强大功能,创建与用户产生共鸣的丰富交互式聊天体验。无论是构建客户服务机器人、创造性写作助手还是教育工具,了解如何与这些模型有效沟通都将打开无限可能。

结论:实现Chat GPT API的全部潜力

Chat GPT API为开发人员提供了一个多功能且强大的工具集,用于将先进的AI能力集成到应用程序中。从根据对话线索生成动态函数参数到执行根据用户需求定制的复杂逻辑,实现的可能性是广泛而多样的。

通过利用本指南提供的技术和示例,开发人员可以创建更引人入胜、智能和个性化的应用程序,推动与对话式AI的可能性边界。随着API的不断演进,我们只能想象将出现的新机遇,进一步提供创新和变革性的解决方案。