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 次下载

MIT 许可证

90KB
2K SLoC

People Data Labs Logo

People Data Labs Rust 客户端

People Data Labs API 的官方 Rust 客户端。

仓库状态   测试状态

目录

🔧 安装

  1. 要在项目中使用 peopledatalabs SDK,请初始化您的 Rust 包,然后运行
cargo add peopledatalabs
  1. 免费注册 PDL API 密钥
  2. 将 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