Ubumenyi bwa Diffbot bufite intego yoroshye - kuzana igiteranyo cyubumenyi bwose kurutoki rwawe ukoresheje ubushakashatsi bwibanda kumibare nubusabane hejuru yubushakashatsi bworoshye bushingiye kubushakashatsi. Inkomoko y'urubuga rwose, Ubumenyi Graph iragufasha gukora ibibazo bigoye kurwanya miliyari zamakuru yatanzwe ako kanya ukoresheje API yoroshye. Nahisemo gufata umuzenguruko hamwe na API yabo no kubaka igikoresho "gisa" cyoroshye - isesengura ryamakuru kubicuruzwa bikorerwa kumurongo wikora. Bikwiye kuba byoroshye, sibyo? Reka tubigereho. Menya ko ingero ziri kuriyi nyandiko zerekana ko wabonye urufunguzo rwubusa muri Diffbot. Witondere kubikora mbere yo kugerageza ingero.
Gutegura Ikibazo
Mbere yo kwandika umurongo wa code, ninjiye muri Diffbot mfungura igikoresho cyabo cyo gushakisha amashusho kubumenyi Graph. Igikoresho kigufasha kubaka ibibazo mumashusho cyangwa mukiganza. Ibibazo bizwi nka 'DQL' imvugo muri Diffbot kandi biroroshye gusoma nubwo waba utarigeze ubona syntax mbere.
Kuva kuri iki gikoresho, natangiye mpitamo ubwoko bwikintu. Ubu ni ubwoko bwo hejuru bwamakuru nshaka gushakisha kandi burashobora kuba bumwe muburyo bwinshi, kuva kubantu kugeza kubyabaye kugeza firime nishoramari. Nahisemo "Ingingo" kuko intego yanjye ari ugushaka amakuru avuga nabi ibicuruzwa byanjye byiza. Hanyuma nahisemo "Akayunguruzo By". Mugihe ushobora gushungura kumitungo iyo ari yo yose muburyo bwikigo, nakoresheje tags.label
kuko ihuye neza kuruta gushakisha inyandiko yoroshye. Mugihe inyandiko yungurura ikora, ukoresheje tags.label
itanga ibisubizo byiza cyane mukwemeza ko ibisubizo byibanze kubushakashatsi bwanjye, ntabwo ari kubivuga gusa. Kuri demo yanjye, nzashaka ingingo zerekeye "XBox".
Nakoresheje kandi "Sort by" agaciro kugirango nerekane ibishya mbere kandi uku gushakisha gushakisha kugirango ndebe niba ibisubizo byanjye byumvikana.
Mugihe ibisubizo byanjye byambere bitarimo ibisubizo byururimi rwamahanga, nari nzi ko nshaka gushungura ibisubizo mucyongereza, nuko rero nongeyeho akayunguruzo k'ururimi. Gukubita + ikimenyetso na filteri yubu, nashoboye kongeramo ururimi na en
icyongereza. Nongeyeho, nakubise gushakisha:
Nibyiza, rero ubutaha, ndashaka gushungura kubisubizo bibi gusa. Ubumenyi Igishushanyo mbonera Ibice bifite amanota yimyumvire (urashobora kubibona mubisubizo byubushakashatsi) biva kuri -1 bikagera kuri byinshi bikagera kuri 1 bikagera kuri byinshi. Mu ntangiriro, nahisemo gusa ibintu bifite imyumvire iri munsi cyangwa ingana na 0.
Woot, kugerayo. Nintambwe yanyuma, nari nzi ko ibi bigiye guhita byungururwa no gushungura mubintu 'biherutse', nuko nongeraho ikindi cyunguruzo, iki gihe date
, cyatoranijwe after
, kandi ntora itariki kuva icyumweru gishize.
Kuri iyi ngingo, ikibazo gisa neza, reka rero dukoporore agaciro k'ibibazo byatanzwe nigikoresho:
type:Article tags.label:"Xbox" language:"en" sentiment<=0 date>"2025-03-03" sortBy:date
Andika Kode
Gutegura ikibazo rwose byari igice gikomeye. Kuri kode, nagiye kuri Shakisha doc. Ingero ni curl / HTTP ishingiye ariko byoroshye kohereza kuri Python cyangwa urundi rurimi urwo arirwo rwose. Suzuma iki cyitegererezo:
import os import requests import json import urllib.parse token = os.environ.get("db_token") query = 'type:Article tags.label:"Xbox" language:"en" sentiment<=0 date>"2025-03-03" sortBy:date' apiCall = f"https://kg.diffbot.com/kg/v3/dql?type=query&token={token}&query={urllib.parse.quote(query)}&size=25" req = requests.get(apiCall) results = json.loads(req.content) print(f"Total results, {results['hits']}") for result in results["data"]: print(result["entity"]["title"]) print(result["entity"]["date"]["str"]) print(result["entity"]["summary"]) if "author" in result["entity"]: print(result["entity"]["author"]) print(result["entity"]["siteName"]) print(result["entity"]["pageUrl"]) print(result["entity"]["sentiment"]) print("------------------------------------")
Kumena ibi - Natangiriye kubibazo byanjye uhereye kubikoresho bigaragara. Ibi noneho bibona url kodegisi hanyuma ikanyuzwa kuri API kubishushanyo mbonera. Ikintu gishya cyonyine hariho inyongera size=25
kugirango ibisubizo bishyirwe kumipaka yumvikana.
Nahamagaye API, andika ibisubizo byose byabonetse (uhereye kuri hits
ibisubizo) hanyuma usubiremo hejuru ya buri kintu cyerekana amakuru atandukanye uhereye kubisubizo. Dore bike mubisubizo:
Total results, 68 Xbox will release its first handheld gaming console this year, report claims d2025-03-10T19:37 Windows Central expects the console to take advantage of the widgets on the Xbox Game Bar to let use... Jacob Siegal BGR https://bgr.com/entertainment/xbox-will-release-its-first-handheld-gaming-console-this-year-report-claims/ 0 ------------------------------------ Rumour: Next-Gen Xbox a 'PC in Essence' - What Would That Mean for PlayStation? d2025-03-10T19:00 Recent comments from Windows Central's executive editor Jez Corden have sparked discussion about whe... Stephen Tailby Push Square https://www.pushsquare.com/news/2025/03/rumour-next-gen-xbox-a-pc-in-essence-what-would-that-mean-for-playstation 0 ------------------------------------ Xbox handheld out this year and will go up against Nintendo Switch 2 says source d2025-03-10T18:50 New rumours about Microsoft's next gen plans suggests that there will be two Xbox handheld consoles ... GameCentral Metro http://metro.co.uk/2025/03/10/xbox-handheld-this-year-will-go-nintendo-switch-2-says-source-22703266/ 0
Ibi birakora, ariko noneho reka dukore itariki. Natangiye gutumiza mu datetime
:
from datetime import datetime, timedelta
Nahise nkora itariki yimiterere yicyumweru gishize:
today = datetime.now() lastWeek = today + timedelta(days=-7) fLastWeek = lastWeek.strftime("%Y-%m-%d")
Kandi biti byanyuma kwari ugushiramo gusa iyo tariki mubibazo byanjye:
query = f'type:Article tags.label:"Xbox" language:"en" sentiment<=0 date>{fLastWeek} sortBy:date'
Urashobora kubona code yuzuye yinkomoko yambere hano na verisiyo yanyuma hano .
Kubaka Automation
Nibyiza, igihe cyo gutangiza ibi. Kuri automatisation yanjye, nzakoresha Pipedream , sisitemu yimikorere idasanzwe yo gukoresha nakoresheje inshuro nyinshi kera. Dore ibikorwa byose hamwe na buri gice cyubatswe:
Natangiye akazi kanjye hamwe na gahunda yoroshye ishingiye kuri trigger, ni ukuvuga igihe cyo gukora. Ibi byari bimwe uko bishakiye, ariko natoye buri cyumweru, ku cyumweru, saa 1PM.
Intambwe ikurikira, getArticles
, ikemura logique nerekanye kare, ariko ubu muri "umuyoboro wa Pipedream", nuburyo busanzwe bwo kwandika code intambwe mubikorwa bya Pipedream.
import os import requests import json from datetime import datetime, timedelta import urllib.parse def handler(pd: "pipedream"): token = os.environ.get("db_token") today = datetime.now() lastWeek = today + timedelta(days=-7) fLastWeek = lastWeek.strftime("%Y-%m-%d") query = f'type:Article tags.label:"Xbox" language:"en" sentiment<=0 date>{fLastWeek} sortBy:date' apiCall = f"https://kg.diffbot.com/kg/v3/dql?type=query&token={token}&query={urllib.parse.quote(query)}&size=25" req = requests.get(apiCall) return json.loads(req.content)
Intambwe ikurikira ni intambwe yihuse ya code yo kurangiza akazi niba nta bisubizo bibonetse:
def handler(pd: "pipedream"): if len(pd.steps["getArticles"]["$return_value"]["data"]) == 0: pd.flow.exit("No results")
Noneho ndashaka 'gukanda' ibisubizo gato. Ngiye kohereza imeri kuri njye ubwanjye, nuko nubaka intambwe yo gutunganya ibisubizo mumurongo mwiza:
from datetime import datetime def handler(pd: "pipedream"): email = f""" Negative Article Results: Our search found {pd.steps["getArticles"]["$return_value"]["hits"]} results. Here are the top 25: """ for result in pd.steps["getArticles"]["$return_value"]["data"]: date = datetime.fromtimestamp(result["entity"]["date"]["timestamp"] / 1000) date_f = date.strftime("%Y-%m-%d") email += f""" {result["entity"]["title"]} Sentiment: {result["entity"]["sentiment"]} Published: {date_f} Link: {result["entity"]["pageUrl"]} """ return email
Na none, ibi birasa nkurikije ibyo nibwiraga ko bihagije gushiramo. Urashobora rwose kubona abakunzi benshi, ndetse ugakora ibintu nka, "kumyumvire mibi rwose, ongeraho ibara, amabendera atukura, nibindi".
Intambwe yanyuma kwari ukwandikira imeri ibisubizo gusa. Pipedream ishyigikira "ohereza imeri kuri nyiri konti" intambwe izakora ibyo, nyandikira. Niba narimo kubaka ibi kubakiriya, nakoresheje imwe muri Pipedream yubatswe mu ntambwe za mail APIs.
Numara kwiruka, mbona imeri nziza ifite urutonde rwibintu n'amarangamutima yabo:
Niba uhisemo guha Pipedream kuzunguruka, urashobora kubona akazi kanjye hano: https://github.com/cfjedimaster/General-Pipedream-AI-Stuff/tree/production/report-on-sentiment-p_gYCeNbG
Ibikurikira?
Uru nurugero rumwe gusa rwo gukoresha Diffbot's Knowledge Graph API, kandi nkwibutsa, ingingo nimwe gusa muburyo butandukanye bwamakuru ushobora gushakisha. Ibintu byose nakoze hano nabyo byakorewe kuri konte yubusa rwose , urashobora rero kwiyandikisha rwose ukabigerageza wenyine. Ngiye gucukumbura muri byinshi kugirango umenyeshe niba ufite ikibazo!