跳到主要内容

假设的LLM

概述

本文档提供了 fake 包的概述,该包为 Go 应用程序中的测试目的提供了一个模拟的语言学习模型(Language Learning Model, LLM)实现。

安装

要使用 fake 包,请将其导入到您的 Go 项目中:

go get "github.com/tmc/langchaingo"

先决条件

确保在您的机器上安装了 Go 编程语言(推荐版本为 1.15 或更高)。

示例用法

以下示例演示如何使用假包:

package main

import (
"context"
"fmt"
"log"

"github.com/tmc/langchaingo/llms/fake"
)

func main() {
// 使用初始响应创建一个假设的 LLM。
responses := []string{
"Hello!",
"How are you?",
"I'm fine, thanks.",
}
llm := fake.NewFakeLLM(responses)

// 用提示调用假的 LLM。
ctx := context.Background()
response, err := llm.Call(ctx, "Hi there!")
if err != nil {
log.Printf("调用 LLM 错误: %v\n", err)
} else {
fmt.Println("LLM 响应:", response)
}

// 添加新的响应并再次测试。
llm.AddResponse("Goodbye!")
response, err = llm.Call(ctx, "See you later!")
if err != nil {
log.Printf("调用 LLM 错误: %v\n", err)
} else {
fmt.Println("LLM 响应:", response)
}
}

API 参考

构造函数

func NewFakeLLM(responses []string) *LLM

使用提供的响应创建一个新的假 LLM 实例。

方法

Call

func (f *LLM) Call(ctx context.Context, prompt string, options ...llms.CallOption) (string, error)

模拟调用模型并返回预定义的响应。支持所有标准 LLM 选项,如 WithTemperatureWithMaxTokens 等。

GenerateContent

func (f *LLM) GenerateContent(ctx context.Context, messages []llms.MessageContent, options ...llms.CallOption) (*llms.ContentResponse, error)

模拟从消息序列生成内容。这是支持多模态输入的现代接口。

Reset

func (f *LLM) Reset()

重置内部响应索引,使响应可以再次从头开始循环。

AddResponse

func (f *LLM) AddResponse(response string)

向假 LLM 的可能响应列表中添加一个新的响应。

目的

fake 包旨在为与语言学习模型交互的应用程序提供测试便利,无需依赖真实的模型实现。它有助于在受控环境中验证应用程序逻辑和行为。