90 lines
2.1 KiB
TypeScript
90 lines
2.1 KiB
TypeScript
import type { LarkEvent } from "@egg/lark-msg-tool"
|
|
import { NetToolBase } from "@egg/net-tool"
|
|
|
|
interface Chat2SoupParams {
|
|
user_query: string
|
|
soup_id: string
|
|
history: string
|
|
}
|
|
|
|
interface Chat2SoupResp {
|
|
type: "GAME" | "END" | "OTHER"
|
|
content: string
|
|
}
|
|
|
|
interface Soup {
|
|
/**
|
|
* 海龟汤ID
|
|
*/
|
|
title: string
|
|
/**
|
|
* 海龟汤内容
|
|
*/
|
|
query: string
|
|
/**
|
|
* 海龟汤答案
|
|
*/
|
|
answer: string
|
|
}
|
|
|
|
class AttachService extends NetToolBase {
|
|
protected hostMap: Record<string, string> = {
|
|
dev: "https://lark-egg-preview.ai.xiaomi.com",
|
|
preview: "https://lark-egg-preview.ai.xiaomi.com",
|
|
production: "https://lark-egg.ai.xiaomi.com",
|
|
}
|
|
|
|
/**
|
|
* 监控CI状态
|
|
* @param {string} chat_id - 聊天ID。
|
|
* @returns {Promise<string>} 返回CI监控结果。
|
|
*/
|
|
async ciMonitor(chat_id: string) {
|
|
const URL = `https://lark-egg.ai.xiaomi.com/gitlab_monitor/ci?chat_id=${chat_id}`
|
|
return this.get(URL).catch(() => "")
|
|
}
|
|
|
|
/**
|
|
* 收集报告数据
|
|
* @param {LarkEvent.Data} body - 报告数据。
|
|
* @returns {Promise<string>} 返回报告收集结果。
|
|
*/
|
|
async reportCollector(body: LarkEvent.Data) {
|
|
const URL = "https://report.imoaix.cn/report"
|
|
return this.post(URL, body).catch(() => "")
|
|
}
|
|
|
|
/**
|
|
* 代理MiChat事件
|
|
* @param {LarkEvent.Data} body - 事件数据。
|
|
* @returns {Promise<void>} 返回空。
|
|
*/
|
|
async proxyMiChatEvent(body: LarkEvent.Data) {
|
|
const hostList = ["michat-staging.ai.srv", "michat.ai.srv"]
|
|
const path = "/api/v1/bypass/robot_event_callback"
|
|
for (const host of hostList) {
|
|
const URL = `http://${host}${path}`
|
|
await this.post(URL, body).catch(() => "")
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 开始海龟汤
|
|
*/
|
|
async startSoup() {
|
|
const URL = "http://10.224.124.13:8778/soup"
|
|
return this.post<Soup>(URL, {}).catch(() => null)
|
|
}
|
|
|
|
/**
|
|
* 和海龟汤聊天
|
|
* @param {Chat2SoupParams} body - 聊天参数
|
|
*/
|
|
async chat2Soup(body: Chat2SoupParams) {
|
|
const URL = "http://10.224.124.13:8778/host"
|
|
return this.post<Chat2SoupResp>(URL, body).catch(() => null)
|
|
}
|
|
}
|
|
|
|
export default AttachService
|