프로젝트 소개
discolike-python은 DiscoLike API용 공식 Python SDK 및 CLI입니다. DiscoLike API는 전 세계 50개 언어로 8천만 개 이상의 비즈니스 웹사이트를 인덱싱하는 비즈니스 웹 검색 엔진입니다. 이 저장소는 SDK 라이브러리인 discolike와 SDK에 의존하는 터미널 명령줄 인터페이스인 discolike-cli, 두 개의 패키지를 제공합니다. 둘 다 Python 3.10 이상이 필요합니다.
SDK는 DiscoLike API와 상호 작용하기 위한 타입 기반 클라이언트(Discolike)와 비동기 대응 클라이언트(AsyncDiscolike)를 제공합니다. 핵심 기능으로는 ICP 텍스트, 구문, 기술 스택, 지역 및 40개 이상의 필터로 유사 기업 발견, 가져오기 전 세그먼트 카운트, 단일 또는 대량 CSV 모드에서 (선택적 전화, 도시, 주 포함) 불일치 회사 이름을 도메인에 매칭, DiscoLike 데이터셋으로 CSV 도메인 목록 강화, 도메인 목록 자동 세그먼트화, ICP 정의에 대한 도메인 목록 검증, 기업 정보, 점수, 성장 데이터, 리디렉션, 공급업체 및 자회사를 포함한 전체 회사 프로필 검색, 대상 회사의 연락처 검색, 조회, 매칭 및 발견, 웹 검색이 활성화된 도메인 집합에 대한 DiscoGen 연구 실행 등이 포함됩니다.
인증은 세 가지 방법을 지원합니다: 가입(브라우저 없이 이메일과 이름으로 계정을 열고 소유자가 이메일로 확인), OAuth 로그인(루프백 리디렉션이 있는 브라우저 기반 PKCE 인증 코드 흐름 또는 URL을 출력하는 헤드리스 모드), API 키(환경 변수 DISCOLIKE_API_KEY, CLI 구성 파일 또는 명시적 매개변수 사용). OAuth 자격 증명는 만료 60초 전에 사전에 새로 고쳐지며 401 후 한 번 더 새로 고쳐집니다. 클라이언트는 자체 httpx2.Client 또는 httpx2.AsyncClient 가져오기도 지원합니다.
모든 요청 모델은 플랫폼의 OpenAPI 사양에서 생성되며 요청이 전송되기 전에 Pydantic으로 로컬에서 검증되므로 잘못된 열거형 값이나 범위를 벗어난 숫자는 왕복 비용이 발생하지 않습니다. 모든 응답은 타입이 지정된 Pydantic 모델입니다. 오류는 DiscolikeError에서 상속되며 인증, 플랜 액세스, 찾을 수 없음, 서버, 속도 제한, 검증 및 API 연결 실패에 대한 특정 하위 클래스가 있습니다. 일시적 실패는 자동으로 재시도됩니다(기본적으로 3회 시도).
장기 실행 대량 작업(match.bulk, segment, validate_icp, contacts.bulk_match)은 차단 대신 Job 핸들을 반환합니다. Job.wait()는 완료될 때까지 차단하고, Job.status()는 차단 없이 폴링하며, Job.cancel()은 중단합니다. DiscoGen 계열 작업에서 반환된 JobStatus에는 경고, estimated_cost 및 모델별 사용량과 검색 공급자 항목을 포함한 cost_metadata가 포함됩니다. JobTimeoutError는 클라이언트 측 대기 제한일 뿐이며 작업은 서버 측에서 계속 실행되므로 wait()를 다시 호출하여 재개할 수 있습니다.
CLI는 discover, count, match, extract, validate-icp, append, segment, signup 명령과 auth, company, contacts, discogen, queries, account, search-providers, llm-providers 명령 그룹으로 SDK의 기능을 반영합니다. 결과는 기본적으로 stdout에 JSON으로 인쇄되며, stdout이 TTY인 경우 사람이 읽을 수 있는 출력을 위해 --format table을 사용합니다. 비동기 엔드포인트는 --wait를 허용하여 작업이 끝날 때까지 차단하거나 폴링을 위해 task_id를 반환합니다. 종료 코드는 0 성공, 1 서버 오류, 2 검증 오류, 3 인증/플랜 오류, 4 속도 제한, 5 네트워크 오류, 6 찾을 수 없음으로 표준화되어 있습니다.
저장소는 uv 워크스페이스로 구성되어 있으며 packages/discolike(SDK) 및 packages/discolike-cli(CLI) 두 멤버가 있습니다. 개발은 테스트에 pytest, 린팅에 ruff, OpenAPI 사양에서 요청 모델을 재생성하는 코드 생성 스크립트(scripts/gen_requests.py)를 사용합니다. examples/ 폴더에는 체크포인트 및 재개 기능이 있는 CRM 연락처 내보내기를 DiscoLike 페르소나 ID에 매칭, CSV에서 업무 이메일 대량 찾기, ICP로 회사 발견 후 DiscoGen으로 강화 등 일반적인 워크플로우를 위한 실행 가능한 스크립트가 포함되어 있습니다. 이 프로젝트는 MIT 라이선스입니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.