如何 3 步跑通 tikuAdapter 题库搜索服务:安装、部署与配置完整指南
2026/8/22 12:08:47 网站建设 项目流程

如何 3 步跑通 tikuAdapter 题库搜索服务:安装、部署与配置完整指南

【免费下载链接】tikuAdapter大学生网课题库接口适配器:将不同的题库整合为一个API接口。项目地址: https://gitcode.com/gh_mirrors/ti/tikuAdapter

你在做大学生网课题目自动答题脚本,却发现 icodef、不挂科、万能题库各家接口请求方式、返回结构全都不一样?tikuAdapter 是一个题库接口适配器:它把这些题库接口统一成一个标准格式的搜题 API,你的脚本只需要对接一次。它默认优先走免费题库,也支持付费题库和自定义题库,还带一个网页管理控制台,可以解析 Word 文档录入本地题库。下面直接讲怎么跑起来、代码怎么读、配置改哪里。

3 步跑起可用的搜题服务

✅ Docker 部署最省事,不用装 Go 环境:

git clone https://gitcode.com/gh_mirrors/ti/tikuAdapter cd tikuAdapter docker build -t tiku-adapter . docker run -d --name tiku-adapter -p 8060:8060 -v ./data:/app/data tiku-adapter

跑起来后你会看到两样东西:

  • 浏览器打开http://localhost:8060就是网页控制台,默认账号admin、密码123456,题库增删改查和搜索日志都在里面。
  • 一个搜题 API:POST /adapter-service/search

想从源码跑也可以:入口在 cmd/adapter-service/main.go,先执行buildweb.shweb/下的 Vue 前端打包进dist/,再go build ./cmd/adapter-service。前端是通过 go:embed 嵌进二进制里的,所以编译完只有一个可执行文件,页面和 API 一起服务在 8060 端口。

调一次搜题接口,看统一返回长什么样

请求体只需要问题、选项和题型,返回的就是所有题库通用的标准答案格式(answerKey、bestAnswer 等字段):

curl -X POST "http://localhost:8060/adapter-service/search" \ -H "Content-Type: application/json" \ -d '{"question":"违反安全保障义务责任属于()","type":1}'

用 URL 参数控制走哪些题库,不填use时默认只用免费题库:

  • use=wanneng,icodef指定要命中的题库,多个用逗号分隔。
  • 付费题库在 URL 上追加对应 Token,如enncyToken=xxxx,不用改任何代码。
  • 想临时禁用某个题库,同样通过use参数排除即可。

代码怎么组织:一个题库一个文件

最值得先看的是 internal/search/ 目录:icodef、buguake、wanneng、lemon……每个题库对应一个.go文件,全部实现同一个Search接口——传进问题,返回答案。想接一个新题库,照着现有文件再写一个就行,其他模块完全不用动。

  • internal/controller/负责接收 HTTP 请求,internal/middleware/做全局限流和答案记录。
  • internal/service/parse_xls.go把上传的 Word/Excel 题库解析进本地数据库。
  • pkg/model/search.go定义了统一请求和响应结构,也就是所谓"题库接口规范"的实体。

这几个配置最值得改:config.yaml 三处

在程序运行目录放一份config.yaml就会被自动读取,完整字段以 configs/config.yaml 为准:

database: path: "data/tiku.db" limit: enable: false duration: 3 requests: 1
  • database.path:Docker 部署时设为data/tiku.db并挂载该目录,数据库才能持久化;不配则默认在程序目录生成tiku.db
  • limit:按 IP 对搜题接口限流,个人自用保持关闭,公网暴露时再打开。
  • api:接你自己的第三方题库,写 url、method、body(用${question}占位)、answer(jsonpath 指到答案字段)四段即可,无需写代码。

常见坑与下一步

  • 容器重建后题库数据丢了 → 没挂data目录或没设database.path,按上面配置补齐。
  • 搜不到答案 → 开启recordEmptyAnswer: true,空答案也会记录进库,方便你后期手动补题。
  • 想换存储 → 把mysql字段填成 DSN 即可从 SQLite 切到 MySQL,填elasticsearch.url可启用 ES 检索。

下一步建议:把test/目录里的test.docx通过/adapter-service/upload接口上传,几分钟内你就有了一个可搜索的本地题库。

【免费下载链接】tikuAdapter大学生网课题库接口适配器:将不同的题库整合为一个API接口。项目地址: https://gitcode.com/gh_mirrors/ti/tikuAdapter

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询