llmtest

command
v1.1.0-beta.0...-c08679b Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 25, 2025 License: Apache-2.0 Imports: 9 Imported by: 0

README

LLMTest

It's a tool to help TiDB developers to generate test cases through LLM for any features, and run the test cases in TiDB.

Generate

The LLMTest uses different "prompt generator" to generate the tests for different features. For example, the generator/expression.go includes the expression prompt generator to generate the test cases for expression module.

To generate test cases with a specific prompt generator, you can use the following command:

./llmtest generate --openai_base_url https://openai.base.url --openai_model deepseek/deepseek-r1 --openai_token XXXXX --parallel 20 --prompt_generator expression --test_count 10

Replace the prompt_generator with the specific prompt generator you want to use.

Add a new prompt generator

To add a new prompt generator, you need to implement the PromptGenerator interface in the generator/prompt.go file. The PromptGenerator interface includes the following methods:

// PromptGenerator is the interface for prompt generator.
type PromptGenerator interface {
	Name() string
	Groups() []string

	GeneratePrompt(group string, count int, existCases []*testcase.Case) []openai.ChatCompletionMessageParamUnion
	Unmarshal(response string) []testcase.Case
}

The Name method returns the name of the prompt generator. The Groups method returns the sub-classes of the prompt generator. The GeneratePrompt method generates the prompt for the test cases. The Unmarshal method unmarshals the response from the OpenAI API to the test cases.

The Groups() method is used to classify the test cases. For example, the expression prompt generator has the following groups:

[]string{"+", "-" ....}

Verify

To verify the generated test cases, you can use the following command:

./llmtest verify --mysql_dsn "root:123456@tcp(127.0.0.1:3306)/test" --tidb_dsn "root@tcp(127.0.0.1:4000)/test" --prompt_generator expression

It'll execute the generated test cases in the TiDB cluster and MySQL to verify the results.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL