假设的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 选项,如 WithTemperature
、WithMaxTokens
等。
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
包旨在为与语言学习模型交互的应用程序提供测试便利,无需依赖真实的模型实现。它有助于在受控环境中验证应用程序逻辑和行为。