old-agentic-v1^2
Travis Fischer 2023-06-13 02:06:00 -07:00
rodzic 92ba811e93
commit 97536de2ec
2 zmienionych plików z 145 dodań i 9 usunięć

Wyświetl plik

@ -164,7 +164,7 @@ export interface Request {
version: number
}
export interface DiffbotSearchKnowledgeGraphOptions {
export interface DiffbotKnowledgeGraphSearchOptions {
type?: 'query' | 'text' | 'queryTextFallback' | 'crawl'
query: string
col?: string
@ -186,18 +186,47 @@ export interface DiffbotSearchKnowledgeGraphOptions {
report?: boolean
}
export interface DiffbotSearchKnowledgeGraphResponse {
export interface DiffbotKnowledgeGraphEnhanceOptions {
type: 'Person' | 'Organization'
id?: string
name?: string
url?: string
phone?: string
email?: string
employer?: string
title?: string
school?: string
location?: string
ip?: string
customId?: string
size?: number
threshold?: number
refresh?: boolean
search?: boolean
useCache?: boolean
filter?: string
jsonmode?: 'extended' | 'id'
nonCanonicalFacts?: boolean
}
export interface DiffbotKnowledgeGraphSearchResponse {
data: DiffbotKnowledgeGraphNode[]
version: number
hits: number
results: number
kgversion: string
diffbot_type: string
facet: boolean
data: DiffbotKnowledgeGraphNode[]
facet?: boolean
errors?: any[]
}
export interface DiffbotKnowledgeGraphNode {
score: number
esscore?: number
entity: DiffbotKnowledgeGraphEntity
entity_ctx: any
errors: string[]
@ -211,10 +240,71 @@ export interface DiffbotKnowledgeGraphNode {
export interface DiffbotKnowledgeGraphEntity {
id: string
images: DiffbotImage[]
diffbotUri: string
type?: string
name: string
images: DiffbotImage[]
origins: string[]
nbOrigins?: number
gender?: DiffbotGender
githubUri?: string
importance?: number
description?: string
homepageUri?: string
allNames?: string[]
skills?: DiffbotSkill[]
crawlTimestamp?: number
summary?: string
image?: string
types?: string[]
nbIncomingEdges?: number
allUris?: string[]
employments?: DiffbotEmployment[]
locations?: DiffbotLocation[]
location?: DiffbotLocation
allOriginHashes?: string[]
nameDetail?: DiffbotNameDetail
}
interface DiffbotEmployment {
employer: Entity
}
interface Entity {
image?: string
types?: string[]
name: string
diffbotUri?: string
type: EntityType
summary?: string
}
type EntityType = 'Organization' | 'Place'
interface DiffbotGender {
normalizedValue: string
}
interface DiffbotLocation {
country: Entity
isCurrent: boolean
address: string
latitude: number
precision: number
surfaceForm: string
region: Entity
longitude: number
}
interface DiffbotNameDetail {
firstName: string
lastName: string
}
interface DiffbotSkill {
name: string
diffbotUri: string
}
export class DiffbotClient {
@ -290,7 +380,7 @@ export class DiffbotClient {
return this._extract<DiffbotExtractArticleResponse>('v3/article', options)
}
async searchKnowledgeGraph(options: DiffbotSearchKnowledgeGraphOptions) {
async knowledgeGraphSearch(options: DiffbotKnowledgeGraphSearchOptions) {
return this.apiKnowledgeGraph
.get('kg/v3/dql', {
searchParams: {
@ -298,6 +388,17 @@ export class DiffbotClient {
token: this.apiKey
}
})
.json<DiffbotSearchKnowledgeGraphResponse>()
.json<DiffbotKnowledgeGraphSearchResponse>()
}
async knowledgeGraphEnhance(options: DiffbotKnowledgeGraphEnhanceOptions) {
return this.apiKnowledgeGraph
.get('kg/v3/enhance', {
searchParams: {
...options,
token: this.apiKey
}
})
.json<DiffbotKnowledgeGraphSearchResponse>()
}
}

Wyświetl plik

@ -4,7 +4,7 @@ import { DiffbotClient } from '@/services'
import { isCI, ky } from '../_utils'
test('Diffbot.analyze', async (t) => {
test('Diffbot.extractAnalyze', async (t) => {
if (!process.env.DIFFBOT_API_KEY || isCI) {
return t.pass()
}
@ -20,7 +20,7 @@ test('Diffbot.analyze', async (t) => {
t.is(result.objects?.length, 1)
})
test('Diffbot.article', async (t) => {
test('Diffbot.extractArticle', async (t) => {
if (!process.env.DIFFBOT_API_KEY || isCI) {
return t.pass()
}
@ -35,3 +35,38 @@ test('Diffbot.article', async (t) => {
// console.log(JSON.stringify(result, null, 2))
t.is(result.objects[0].type, 'article')
})
test.only('Diffbot.knowledgeGraphSearch', async (t) => {
if (!process.env.DIFFBOT_API_KEY || isCI) {
return t.pass()
}
t.timeout(2 * 60 * 1000)
const client = new DiffbotClient({ ky })
const result = await client.knowledgeGraphSearch({
type: 'query',
query: 'Brown University',
size: 10
})
// console.log(JSON.stringify(result, null, 2))
t.true(Array.isArray(result.data))
t.is(result.data.length, 10)
})
test('Diffbot.knowledgeGraphEnhance', async (t) => {
if (!process.env.DIFFBOT_API_KEY || isCI) {
return t.pass()
}
t.timeout(2 * 60 * 1000)
const client = new DiffbotClient({ ky })
const result = await client.knowledgeGraphEnhance({
type: 'Person',
name: 'Travis Fischer',
url: 'https://transitivebullsh.it'
})
// console.log(JSON.stringify(result, null, 2))
t.is(result.data[0]?.entity?.githubUri, 'github.com/transitive-bullshit')
})