feat: 增加一个google搜索源

This commit is contained in:
ikechan8370 2023-06-24 12:13:45 +08:00
parent 9c07b4fef7
commit 76008952b5
4 changed files with 86 additions and 35 deletions

View file

@ -0,0 +1,30 @@
import { AbstractTool } from './AbstractTool.js'
export class SerpGoogleTool extends AbstractTool {
name = 'google'
parameters = {
properties: {
q: {
type: 'string',
description: 'search keyword'
}
},
required: ['q']
}
func = async function (opts) {
let { q } = opts
let serpRes = await fetch(`https://serp.ikechan8370.com/google?q=${encodeURIComponent(q)}&lang=zh-CN&limit=10`, {
headers: {
'X-From-Library': 'ikechan8370'
}
})
serpRes = await serpRes.json()
let res = serpRes.data
return `the search results are here in json format:\n${JSON.stringify(res)}`
}
description = 'Useful when you want to search something from the internet. If you don\'t know much about the user\'s question, just search about it!'
}

View file

@ -1,41 +1,40 @@
import { AbstractTool } from './AbstractTool.js'
import {Config} from "../config.js";
import { Config } from '../config.js'
export class SerpTool extends AbstractTool {
name = 'serp'
name = 'serp'
parameters = {
properties: {
q: {
type: 'string',
description: 'search keyword'
}
},
required: ['q']
}
parameters = {
properties: {
q: {
type: 'string',
description: 'search keyword'
}
},
required: ['q']
}
func = async function (opts) {
let { q } = opts
let key = Config.azSerpKey
func = async function (opts) {
let { q } = opts
let key = Config.azSerpKey
let serpRes = await fetch(`https://api.bing.microsoft.com/v7.0/search?q=${encodeURIComponent(q)}&mkt=zh-CN`, {
headers: {
'Ocp-Apim-Subscription-Key': key
}
})
serpRes = await serpRes.json()
let serpRes = await fetch(`https://api.bing.microsoft.com/v7.0/search?q=${encodeURIComponent(q)}&mkt=zh-CN`, {
headers: {
'Ocp-Apim-Subscription-Key': key
}
})
serpRes = await serpRes.json()
let res = serpRes.webPages.value
res.forEach(p => {
delete p.displayUrl
delete p.isFamilyFriendly
delete p.thumbnailUrl
delete p.id
delete p.isNavigational
let res = serpRes.webPages.value
res.forEach(p => {
delete p.displayUrl
delete p.isFamilyFriendly
delete p.thumbnailUrl
delete p.id
delete p.isNavigational
})
return `the search results are here in json format:\n${JSON.stringify(res)}`
}
})
return `the search results are here in json format:\n${JSON.stringify(res)}`
}
description = 'Useful when you want to search something from the internet. If you don\'t know much about the user\'s question, just search about it!'
description = 'Useful when you want to search something from the internet. If you don\'t know much about the user\'s question, just search about it!'
}