package
9.0.0-beta.2.pre+incompatible
Repository: https://github.com/pingcap/tidb.git
Documentation: pkg.go.dev

# Packages

No description provided by the author
No description provided by the author
No description provided by the author

# 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.