ai-gateway

command module
v0.0.0-...-22e259c Latest Latest
Warning

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

Go to latest
Published: Mar 14, 2023 License: GPL-3.0 Imports: 15 Imported by: 0

README

简介

这个是凌鲨的一个副产品。用于给研发团队提供安全可控的AI能力的网关。

能力

  • 提供内容检查脚本
  • 提供http和脚本两种AI转发能力
  • 定义了代码相关的AI接口

使用

部署

使用docker部署ai-gateway

docker run -d -p 8080:8080 linksaas/ai-gateway:0.0.1

配置

config.yaml是唯一的配置文件

port: 8080
ssl:
  enable: false
  cert: your_ssl_cert
  key: your_ssl_key
secret: your_serv_secret
dev: true
logdir: logs
tokenttl: 600
checkscript: script/check.go
provider: 
  coding:
    - backend: script://script/coding_provider.go #suport http:// and script://
      checkscript: script/check.go
      # support lang:python,c,cplusplus,java,csharp,visualbasic,javascript,sql,asm,php,r,go,matlab,swift,delphi,ruby,perl,objc,rust
      complete: []
      convert: []
      explain: []
      fixerror: []
      gentest: []

provider 可以提供多个,处理的时候至上而下,找到第一个配置的provider进入后续处理过程。

只有在dev为true的时候,可以通过/api/dev/genToken生成访问令牌。

脚本

我们的使用yaegi作为执行引擎。开发的时候可以当golang进行开发测试。

目前只能import标准库,并且需要有golang 1.19以上环境,并设置环境变量GOROOT

检查脚本

检查脚本存在两个层级,全局检查脚本和provider层面的检查脚本。在provider层面的检查脚本不存在的情况下,会使用全局检查脚本。

package script

//check content of request
//@return false for forbid process,true for continue process
func CheckContent(apiUrl, content string) bool {
	//TODO
	return true
}
代码AI功能实现脚本
package script

//process /api/coding/complete/:lang
func Complete(lang, content string) []string {
	//TODO
	return nil
}

//process /api/coding/convert/:lang
func Convert(lang, destLang, content string) []string {
	//TODO
	return nil
}

//process /api/coding/explain/:lang
func Explain(lang, content string) []string {
	//TODO
	return nil
}

//process /api/coding/fixError/:lang
func Fixerror(lang, errStr string) []string {
	//TODO
	return nil
}

//process /api/coding/genTest/:lang
func Gentest(lang, content string) []string {
	//TODO
	return nil
}

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
apiimpl

Jump to

Keyboard shortcuts

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