7 个版本 (稳定)
2.1.0 | 2024年6月12日 |
---|---|
2.0.1 | 2024年5月20日 |
2.0.0 | 2024年4月3日 |
1.1.1 | 2024年3月18日 |
0.1.3 | 2023年9月14日 |
#282 in 网页编程
每月 21 次下载
90KB
2K SLoC
People Data Labs Rust 客户端
People Data Labs API 的官方 Rust 客户端。
目录
🔧 安装
- 要在项目中使用 peopledatalabs SDK,请初始化您的 Rust 包,然后运行
cargo add peopledatalabs
- 免费注册 PDL API 密钥。
- 将 API 密钥设置为环境变量。
🚀 使用
首先,创建 PeopleDataLabs 客户端
let api_key = std::env::var("PDL_API_KEY").unwrap();
let client = PDL::new(&api_key);
然后,向任何 PDL API 端点发送请求。
个人信息
增强
let mut person_params = PersonParams::default();
person_params.name = Some(vec!["josh finnie".to_string()]);
person_params.location = Some(vec!["washington, dc".to_string()]);
let mut enrich_params = EnrichPersonParams::default();
enrich_params.person_params = person_params.clone();
let results = client.person.enrich(enrich_params);
批量增强
let mut person_params = PersonParams::default();
person_params.name = Some(vec!["josh finnie".to_string()]);
person_params.location = Some(vec!["washington, dc".to_string()]);
let request = BulkEnrichSinglePersonParams {
params: person_params.clone(),
metadata: None,
};
let bulk_enrich_params = BulkEnrichPersonParams {
requests: vec![request],
};
let results = client.person.bulk_enrich(bulk_enrich_params);
搜索(Elasticsearch)
let mut search_base_params = SearchBaseParams::default();
search_base_params.query = Some(serde_json::value::Value::String(
"{'bool':{'must': [{'term': {'job_title_role': 'health'}},]}}".to_string(),
));
let mut search_params = SearchParams::default();
search_params.search_base_params = search_base_params;
let search_results = client.person.search(search_params);
搜索(SQL)
let query = r#"
SELECT * FROM person
WHERE location_country='mexico'
AND job_title_role='health'
AND phone_numbers IS NOT NULL;
"#.to_string();
let mut search_base_params = SeachBaseParams::default();
search_base_params.sql = query;
let mut seach_params = SearchParams::default();
search_params.search_base_params = search_base_params;
let search_results = client.person.searach(seach_params);
PDL_ID
(检索 API)
let retrieve_person_params = RetrievePersonParams {
base_params: None,
person_id: "82MYIGZzMttzdyKiQBv4ZQ_0000".to_string(),
};
let retrieve_results = client.person.retrieve(retrieve_person_params);
批量检索 API
let retrieve_request = BulkRetrieveSinglePersonParams {
id: "82MYIGZzMttzdyKiQBv4ZQ_0000".to_string(),
metadata: None,
};
let mut bulk_retrieve_params = BulkRetrievePersonParams::default();
bulk_retrieve_params.requests = vec![retrieve_request];
let bulk_retrieve_results = client.person.bulk_retrieve(bulk_retrieve_params);
模糊增强(识别 API)
let mut person_params = PersonParams::default();
person_params.name = Some(vec!["josh finnie".to_string()]);
person_params.location = Some(vec!["washington, dc".to_string()]);
let mut identify_params = IdentifyPersonParams::default();
identify_params.person_params = person_params.clone();
let identify_results = client.person.identify(identify_params);
公司信息
增强
let mut company_params = CompanyParams::default();
company_params.name = Some("google".to_string());
let enrich_params = EnrichCompanyParams {
base_params: None,
company_params,
additional_params: None,
};
let enrich_request = client.company.enrich(enrich_params);
搜索(Elasticsearch)
let mut search_base_params = SearchBaseParams::default();
search_base_params.query = Some(serde_json::value::Value::String(
r#"{'query': {'bool': {'must': {
{"term": {"tags": "bigdata"}},
{"term": {"industry": "financial services"}},
{"term": {"location.country": "united states"}},
},},},
}"#.to_string(),
));
let mut search_params = SearchParams::default();
search_params.search_base_params = search_base_params;
let search_results = client.company.search(search_params);
搜索(SQL)
let mut search_base_params = SearchBaseParams::default();
search_base_params.sql = Some("SELECT * FROM company WHERE website='google.com';".to_string());
let search_params = SearchParams {
base_params: None,
search_base_params,
additional_params: None,
};
let search_results = client.company.search(search_params);
支持性 API
获取自动完成建议
let autocomplete_base_params = AutocompleteBaseParams{
field: "text".to_string(),
text: Some("full".to_string())
};
let autocomplete_params = AutocompleteParams {
base_params: None,
autocomplete_base_params,
};
let request = client.autocomplete.autocomplete(autocomplete_params);
清理原始公司字符串
let mut clean_params = CleanCompanyParams::default();
clean_params.name = Some("google".to_string());
let clean_results = client.company.clean(clean_params);
清理原始位置字符串
let base_params = BaseParams::default();
let location_params = LocationParams {
location: Some("New York, NY".to_string()),
};
let params = CleanLocationParams {
base_params: None,
location_params,
additional_params: None,
};
let results = client.location.clean(params);
清理原始学校字符串
let mut school_params = SchoolParams::default();
school_params.name = Some("UConn".to_string());
let params = CleanSchoolParams {
base_params: None,
school_params,
additional_params: None,
};
let results = client.school.clean(params);
增强职位
let job_title_base_params = JobTitleBaseParams {
job_title: Some("software engineer".to_string()),
};
let params = JobTitleParams {
base_params: None,
job_title_base_params,
};
let results = client.job_title.get(params);
增强技能
let skill_base_params = SkillBaseParams {
skill: Some("python".to_string()),
};
let params = SkillParams {
base_params: None,
skill_base_params,
};
let results = client.skill.get(params);
增强 IP
let mut ip_base_params = IPBaseParams::default();
ip_base_params.ip = Some("72.212.42.169".to_string());
let params = IPParams {
base_params: None,
ip_base_params,
};
let results = client.ip.get(params);
🏝 沙盒使用
// To enable sandbox usage, pass in the following options to the PDLClient before building
let api_key = std::env::var("PDL_API_KEY").unwrap();
let mut client_options = PDLCLientOptions::default();
client_options.sandbox = true;
let client = PDLClient::new(&api_key).options(client_options).build();
🌐 端点
个人端点
API 端点 | SDK 函数 |
---|---|
个人增强 API | client.person.enrich(params) |
个人批量增强 API | client.person.bulk_enrich(params) |
个人搜索 API | client.person.search(params) |
个人检索 API | client.person.retrieve(params) |
个人批量检索 API | client.person.bulk_retrieve(params) |
个人识别 API | client.person.identify(params) |
公司端点
API 端点 | SDK 函数 |
---|---|
公司增强 API | client.company.enrich(params) |
公司搜索 API | client.company.search(params) |
支持性端点
API 端点 | SDK 函数 |
---|---|
自动完成 API | client.autocomplete.autocomplete(params) |
公司清理 API | client.company.clean(params) |
位置清理 API | client.location.clean(params) |
学校清理 API | client.school.clean(params) |
职位名称增强 API | client.job_title.enrich(params) |
技能增强 API | client.skill.enrich(params) |
IP 增强API | client.ip.enrich(params) |
📚 文档
我们所有的API端点文档都在以下位置:https://docs.peopledatalabs.com/
这些文档描述了支持的输入参数、输出响应,并提供额外的技术背景。
如上文中端点部分所示,我们的每个API端点都映射到API客户端中的一个特定方法。对于这些类方法中的每一个,所有函数输入都映射为相应的API端点的输入参数,这意味着您可以使用上面链接的API文档来确定每个端点的输入参数。
依赖关系
~7-21MB
~326K SLoC