首次提交:初始化项目代码

This commit is contained in:
sunct
2026-07-31 14:44:48 +08:00
commit a4fe393571
119 changed files with 29105 additions and 0 deletions
+76
View File
@@ -0,0 +1,76 @@
// Package ai AI 供应商适配层,定义统一的 LLM 调用接口
// 支持通义千问、DeepSeek、豆包、讯飞星火等多家大模型
package ai
import (
"context"
"resume-platform/pkg/config"
)
// Provider AI 服务提供者接口,所有大模型供应商需实现此接口
type Provider interface {
// Generate 调用大模型生成文本
Generate(ctx context.Context, prompt string, opts ...Option) (string, error)
// GetName 获取供应商名称
GetName() string
}
// Option 调用选项函数类型,用于可选参数配置
type Option func(*Options)
// Options AI 调用可选参数
type Options struct {
MaxTokens int // 最大生成token数
Temperature float64 // 温度(随机性)
TopP float64 // 核采样参数
}
// WithMaxTokens 设置最大生成 token 数
// @param maxTokens 最大token数
// @return Option 选项函数
// @author sunct
func WithMaxTokens(maxTokens int) Option {
return func(o *Options) {
o.MaxTokens = maxTokens
}
}
// WithTemperature 设置生成温度
// @param temp 温度值(0~1
// @return Option 选项函数
// @author sunct
func WithTemperature(temp float64) Option {
return func(o *Options) {
o.Temperature = temp
}
}
// WithTopP 设置核采样参数
// @param topP 核采样值
// @return Option 选项函数
// @author sunct
func WithTopP(topP float64) Option {
return func(o *Options) {
o.TopP = topP
}
}
// NewProvider AI 供应商工厂函数,根据配置创建对应供应商实例
// @param cfg AI 配置
// @return Provider 供应商实例
// @return error 创建错误
// @author sunct
func NewProvider(cfg *config.AIConfig) (Provider, error) {
switch cfg.Provider {
case "spark":
return NewSparkProvider(&cfg.Spark), nil
case "tongyi":
return NewTongyiProvider(&cfg.Tongyi), nil
case "doubao":
return NewDoubaoProvider(&cfg.Doubao), nil
case "deepseek":
return NewDeepSeekProvider(&cfg.DeepSeek), nil
default:
return NewSparkProvider(&cfg.Spark), nil
}
}