Setting Up

激活 API Key

要使用 VTSTG233-API,您需要创建一个帐户并生成一个 API 密钥。请执行以下步骤:

  1. 创建账号: 访问 VTSTG233-API 网站并创建帐户。

  2. 生成API令牌密钥: 登录后,导航到您的账户控制面板并生成您的 API 密钥。确保在 UI 上启用该密钥。

你的API密钥
创建令牌密钥
配置令牌分组信息

配置自定义地址

根据您的环境和应用程序,您将以不同的方式设置自定义地址URL。下面是一个通用的自定义地址,您可以使用它来访问我们的 API接口。或者你可以先配置好环境和应用程序/APP后,再次返回这个API文档查看方式。

https://api2.vtstg233.cc

VTSTG233-API支持自定义地址URL/管理令牌/模型分组等选项,从而为您的 API 请求提供灵活性。您可以使用以下任一格式来调用该接口/对应接口:

  • https://api2.vtstg233.cc

  • https://api2.vtstg233.cc/v1

  • https://api2.vtstg233.cc/v1/chat/completions

使用对应自定义地址后缀 URL 有助于确保与 API 的未来更新和更改兼容。建议对长期项目使用对应的 URL 以保持稳定性。

进行首次 API 调用

根据您的环境,您将以不同的方式调用我们的 API。以下是使用两种流行的编程语言调用我们的 API 的两种常见方法:Python 和 NodeJS。

在下面的示例中,我们使用 OpenAI SDK。由于我们与大多数 OpenAI API 兼容,这是可能的,但这只是一种方法。您可以在没有此 SDK 的情况下使用我们的 API 进行原始 HTTP 查询。

Python中的示例

让我们从头开始。我们假设您已经安装了 Python(使用 venv),如果没有,这里是初学者指南.

为测试项目请创建一个新文件夹,将其命名为 vtstg233api-welcome 并更改为它。

mkdir ./vtstg233api-welcome
cd ./vtstg233api-welcome

(可选)如果您使用 IDE,那么我们建议将创建的文件夹作为工作区打开。例如,在 VSCode 中,你可以用:

code .

在创建的文件夹中运行终端并使用命令创建虚拟环境

python3 -m venv ./.venv

激活创建的虚拟环境

# Linux / Mac
source ./.venv/bin/activate
# Windows
./.venv/bin/Activate.bat

安装需求依赖项。在我们的例子中,我们只需要 OpenAI SDK

pip install openai

创建新文件并将其命名为 travel.py

touch travel.py

将以下内容粘贴到此 travel.py 中,并将 我的令牌密钥sk-xxxxx 替换为您在第二步中获得的 API 令牌密钥

from openai import OpenAI

base_url = "https://api2.vtstg233.cc/v1"
api_key = "我的令牌密钥sk-xxxxx"
system_prompt = "你是一名旅行编写者。要有描述性并且提供帮助。"
user_prompt = "告诉我关于广东广州的旅行情况"

api = OpenAI(api_key=api_key, base_url=base_url)


def main():
    completion = api.chat.completions.create(
        model="gpt-4-turbo",
        messages=[
            {"role": "system", "content": system_prompt},
            {"role": "user", "content": user_prompt},
        ],
        temperature=0.7,
        max_tokens=256,
    )

    response = completion.choices[0].message.content

    print("我:", user_prompt)
    print("GPT:", response)


if __name__ == "__main__":
    main()

运行应用程序

python3 ./travel.py

如果所有操作都正确,您将看到以下输出:

我: 告诉我关于广东广州的旅行情况
GPT:  广州是广东省的省会,也是中国南方最大的城市之一,拥有悠久的历史和丰富的文化底蕴。这里气候温暖湿润,全年适宜旅游。

广州的美食闻名遐迩,粤菜是中国八大菜系之一。你一定要品尝地道的早茶,尝试各种精致的点心。沙面岛上的西式建筑和骑楼街区展现了广州的历史风貌。

白云山是广州的城市绿肺,登山远眺可以俯瞰全城。珠江夜游则能欣赏两岸灯光秀,感受现代都市的繁华。广州塔是城市地标,登顶可以360度鸟瞰广州全景。

广州的购物体验也很丰富,北京路步行街汇集了各类商铺,天河城则是现代化的大型购物中心。如果想体验传统文化,可以去参观陈家祠或者西关大屋。

交通方面,广州地铁网络发达,出行非常方便。从白云机场到市区也有便捷的地铁连接。整体来说,广州是一个现代化与传统文化交织的大都市,值得细细品味。
NodeJS中的示例

与 Python 的示例一样,我们也从头开始。我们假设您已经安装了 Node.js。如果没有,这里有一个初学者指南.

我们需要为示例项目创建一个新文件夹:

mkdir ./vtstg233api-welcome
cd ./vtstg233api-welcome

(可选)如果您使用 IDE,那么我们建议将创建的文件夹作为工作区打开。例如,在 VSCode 中,你可以用:

code .

现在创建一个项目文件:

npm init -y

安装所需的依赖项:

npm i openai

使用源代码创建一个文件:

touch ./index.js

并粘贴以下内容:

const { OpenAI } = require("openai");

const baseURL = "https://api2.vtstg233.cc/v1";
const apiKey = "我的令牌密钥sk-xxxxx";
const systemPrompt = "你是一名旅行编写者。要有描述性并且提供帮助。";
const userPrompt = "告诉我关于广东广州的旅行情况";

const api = new OpenAI({
  apiKey,
  baseURL,
});

const main = async () => {
  const completion = await api.chat.completions.create({
    model: "gpt-4-turbo",
    messages: [
      {
        role: "system",
        content: systemPrompt,
      },
      {
        role: "user",
        content: userPrompt,
      },
    ],
    temperature: 0.7,
    max_tokens: 256,
  });

  const response = completion.choices[0].message.content;

  console.log("我:", userPrompt);
  console.log("GPT:", response);
};

main();

您将看到如下所示的响应:

我: 告诉我关于广东广州的旅行情况
GPT:  广州是广东省的省会,也是中国南方最大的城市之一,拥有悠久的历史和丰富的文化底蕴。这里气候温暖湿润,全年适宜旅游。

广州的美食闻名遐迩,粤菜是中国八大菜系之一。你一定要品尝地道的早茶,尝试各种精致的点心。沙面岛上的西式建筑和骑楼街区展现了广州的历史风貌。

白云山是广州的城市绿肺,登山远眺可以俯瞰全城。珠江夜游则能欣赏两岸灯光秀,感受现代都市的繁华。广州塔是城市地标,登顶可以360度鸟瞰广州全景。

广州的购物体验也很丰富,北京路步行街汇集了各类商铺,天河城则是现代化的大型购物中心。如果想体验传统文化,可以去参观陈家祠或者西关大屋。

交通方面,广州地铁网络发达,出行非常方便。从白云机场到市区也有便捷的地铁连接。整体来说,广州是一个现代化与传统文化交织的大都市,值得细细品味。

代码解释

这两个示例都是用不同的编程语言编写的,但尽管如此,它们看起来非常相似。让我们一步一步地分解代码,看看发生了什么。

在上面的示例中,我们使用的是 OpenAI SDK。OpenAI SDK 是一个很好的模块,它允许我们使用 VTSTG233-API,而无需处理用于处理 HTTP 请求的重复样板代码。在我们使用 OpenAI SDK 之前,需要先导入它。导入发生在以下位置:

const { OpenAI } = require("openai");

就这么简单。下一步是初始化我们的代码将使用的变量。两个主要的是:基本 URL 和 API 密钥。我们已经在文章开头讨论了它们。

const baseURL = "https://api2.vtstg233.cc/v1";
const apiKey = "我的令牌密钥sk-xxxxx";
const systemPrompt = "你是一名旅行编写者。要有描述性并且提供帮助。";
const userPrompt = "告诉我关于广东广州的旅行情况";

为了与 LLM交互,用户使用文本。这些文本通常称为 “提示”。在我们的代码中,我们具有两个角色的提示:系统(system)和用户(user)。系统提示(system)设计为生成 LLM 内容,而用户提示词设计为用户输入,即系统提示词的主题。尽管许多模型可以以不同的方式运行,但这种行为通常适用于聊天 LLM 模型,这是目前最有用和最常用的调用模型方式之一。

在代码中,提示在变量 systemPrompt, userPrompt (JS) 和 system_prompt, user_prompt (Python ) 中调用。

在使用 API 之前,我们需要创建一个 OpenAI SDK 类的实例。它允许我们使用他们的所有方法。该实例是使用我们导入的包创建的,这里我们转发两个主要参数:基本 URL 和 API 密钥。

const api = new OpenAI({
  apiKey,
  baseURL,
});

由于表示法的原因,这两个参数在这些不同的语言中的调用略有不同,但它们的功能是相同的。

所有准备步骤均已完成。现在我们需要编写我们的功能并创建一些很好玩的玩意。在上面的示例中,我们制作了最简单的旅行编写者。让我们分解一下如何向模型发送请求的步骤。

最佳做法是将代码块拆分为具有自己的逻辑的完整部分,而不是将可执行代码放在全局模块代码中。这条规则适用于我们讨论的两种语言。所以我们用所有的逻辑创建一个 main 函数。在 JS 中,由于 Promise 和简单性,这个函数需要是异步的。在 Python 中,请求同步运行。

OpenAI SDK 为我们提供了与聊天模型通信的方法。它位于 chat.completions.create 函数中。此函数接受多个参数,但只需要两个参数: modelmessages

model 是一个字符串,即您要使用的模型的名称。为了获得最佳结果,请使用专为聊天设计的模型,或者如果模型未为此目的进行微调,则可能会获得不可预知的结果。可在此处找到支持的模型列表。

messages 是一个对象数组, content 内容的字段为prompt, role 字符串可以是 system, user, tool, assistant之一。 通过该角色,模型可以理解如何处理此提示:这是一条指令吗?这是用户消息吗?这是如何回答的例子吗?这是代码执行的结果吗?工具角色用于更复杂的行为,将在另一篇文章中讨论。

在我们的示例中,我们还使用 max_tokenstemperature. 这一个参数文章中讨论了如何使用这些参数。

了解这些知识后,我们现在可以发送如下所示的请求:

const completion = await api.chat.completions.create({
  model: "gpt-4-turbo",
  messages: [
    {
      role: "system",
      content: systemPrompt,
    },
    {
      role: "user",
      content: userPrompt,
    },
  ],
  temperature: 0.7,
  max_tokens: 256,
});

来自函数 chat.completions.create 的响应包含一个完成。补全是 LLM内容。每个 LLM 模型都是某种词由大量数据训练而完成的。聊天模型旨在使用提示和某些角色自动完成这一块消息,但其他模型可以有自己的自定义逻辑,甚至不需要角色。

在这个完成中,我们对这一代的文本感兴趣。我们可以通过从 completion 变量中获取结果来获取它:

const response = completion.choices[0].message.content;

在某些情况下,完成可能会有多个结果。这些结果称为选择项。每个选择都有一个信息,是一代的产物。字符串内容被放置在 content 变量中,我们将其放置在上面的 response 变量中。

在接下来的步骤中,我们终于可以看到结果。在这两个示例中,我们打印用户提示和响应,就像它是对话一样:

console.log("User:", userPrompt);
console.log("AI:", response);

瞧!使用 VTSTG233-API 模型是进入机器学习和人工智能世界的最简单、最有效的方法。

未来步骤

最后更新于