大模型接入基础

Foxtable有个LLMCaller类,专门用于调用大模型的API接口。

LLMCaller是一个通用的OpenAI兼容API接口调用类,支持所有主流大语言模型,零依赖外部SDK,完全基于原生HTTP请求,极其轻量易用。


本文档
的大模型接入示例均基于DeepSeek的API接口, 也可随时切换到其他大模型, 且代码几乎不用修改。

首先
你要访问DeepSeek开放平台,注册账户,并创建自己的APIKey(密钥),并充值 少量金额。

网址为:

https://platform.deepseek.com


DeepSeek的API文档地址:

https://api-docs.deepseek.com/zh-cn/

第一次访问

下面开始我们的第一次DeepSeek大模型接口调用,请在命令窗口执行,记得在执行前将密钥替换为自己的:

Dim caller As New LLMCaller("https://api.deepseek.com/chat/completions", "deepseek-flash", "sk-a734b83536da45e9aedc3e42605bfb3a") '指定接入地址、模型名称和密钥
caller.UserMessage =
"请写一首睹月思人的七言诗" '用户问题
If
caller.GetResult() Then
    MessageBoxA.Show(caller.Result)
'显示答案
Else

    MessageBoxA.Show(caller.Error)
'如果有错误,则显示错误信息
End
If

不出意外的话,执行上述代码后,DeepSeek会给你写出一首还不错的诗。

通过LLMCaller访问大模型 的基本步骤为:

1、构造LLMCaller时指定大模型接入地址(BaseUrl)、模型名称(model)、密钥(ApiKey)

2、设置用户问题(UserMessage)

3、通过GetResult发起请求


4、如果
GetResult返回True,表示请求成功,则显示答案

5、如果
GetResult返回False,表示请求失败,则显示错误信息

重要提示

上述示例要正确执行的前提是:

1、必须在DeepSeek平台注册账户,并创建自己的ApiKey,用于替换示例代码中的红色部分,如果ApiKey不正确,将提示错误:
请求失败,状态码:401,状态描述:Authorization Required

2、必须给你的DeepSeek账户充值,如果余额不足,将提示错误:
请求失败,状态码:402,状态描述:Payment Required


设置系统提示词

除了前面用到的 BaseUrl、model、ApiKey 和 UserMessage 这 4 个必要属性外,还有一个非常常用的属性 SystemPrompt,用于设置系统角色(提示词)。

例如:

Dim caller As New LLMCaller()
caller.BaseUrl =
"https://api.deepseek.com/chat/completions"
caller.ApiKey =
"sk-a734b83536da45e9aedc3e42605bfb3a" '请替换为自己的DeepSeek密钥
caller.model =
"deepseek-flash"
caller.SystemPrompt =
"你是唐朝诗人李白,风格飘逸豪迈"  '设置系统提示词(系统角色)
caller.UserMessage =
"请写一首睹月思人的七言唐诗"
If caller.GetResult() Then
    MessageBoxA.Show(caller.Result)

Else

    MessageBoxA.Show(caller.Error)

End
If

在命令窗口执行上述代码,不出意外的话,会给你写一首有李白豪迈之风的七言唐诗。

获取请求体

当我们调用GetResult方法发起API接口访问请求时,LLMCaller传递给API接口的是一个JSON格式请求体。

通过查看请求体,你可以确认 LLMCaller 生成的 JSON 是否符合预期,特别在调试多轮对话、工具调用、图片输入等功能时非常有用。

例如在命令窗口执行:

Dim caller As New LLMCaller("https://api.deepseek.com/chat/completions", "deepseek-flash", "sk-a734b83536da45e9aedc3e42605bfb3a")
caller.SystemPrompt =
"你是唐朝诗人李白,风格飘逸豪迈"
caller.UserMessage =
"请写一首睹月思人的七言唐诗"
Dim
body As String = caller.GetRequestBody() '获取请求体
MessageBoxA.Show(body)

可以看到生成的请求体为:

{
  "model": "deepseek-flash",
  "messages": [
    {
      "role": "system",
      "content": "
你是唐朝诗人李白,风格飘逸豪迈"
    },
    {
      "role": "user",
      "content": "
请写一首睹月思人的七言唐诗
"
    }
  ]
}


本页地址:http://www.foxtable.com/webhelp/topics/7202.htm