1. рдкрд░рд┐рдЪрдп
рдЗрд╕ рдХреЛрдбрд▓реИрдм рдореЗрдВ, рдЖрдкрдХреЛ Python рдХреА рдорджрдж рд╕реЗ рдЦрд╛рд╕ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреА рдХреИрдЯрдЧрд░реА рддрдп рдХрд░рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, Document AI рдХреЗ рдЦрд╛рд╕ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдкрддрд╛ рдЪрд▓реЗрдЧрд╛. рдбреЗрдЯрд╛ рдХреА рдХреИрдЯрдЧрд░реА рддрдп рдХрд░рдиреЗ рдФрд░ рдЙрд╕реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЙрджрд╛рд╣рд░рдг рдХреЗ рддреМрд░ рдкрд░ рдПрдХ PDF рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░реЗрдВрдЧреЗ. рдЗрд╕рдореЗрдВ рдЗрдирд╡реЙрдЗрд╕, рд░рд╕реАрдж, рдФрд░ рдмрд┐рдЬрд▓реА, рдкрд╛рдиреА рдЬреИрд╕реА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреЗ. рдЗрд╕рдХреЗ рдмрд╛рдж, рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдФрд░ рдЗрдХрд╛рдИ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЙрджрд╛рд╣рд░рдг рдХреЗ рддреМрд░ рдкрд░ рдЗрдирд╡реЙрдЗрд╕ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░реЗрдВрдЧреЗ.
рдпрд╣ рдкреНрд░реЛрд╕реЗрд╕ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдХреЗ рддреМрд░ рдкрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдХреЛрдб, рдРрд╕реЗ рдХрд┐рд╕реА рднреА рдЦрд╛рд╕ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдЬреЛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдПрдЖрдИ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ.
реЫрд░реВрд░реА рд╢рд░реНрддреЗрдВ
рдпрд╣ рдХреЛрдбрд▓реИрдм, рдЕрдиреНрдп рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдПрдЖрдИ рдХреЛрдбрд▓реИрдм рдореЗрдВ рдореМрдЬреВрдж рдХреЙрдиреНрдЯреЗрдВрдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрдирддрд╛ рд╣реИ.
рд╣рдорд╛рд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣рд╛рдВ рджрд┐рдП рдЧрдП рдХреЛрдбрд▓реИрдм (рдХреЛрдб рдмрдирд╛рдирд╛ рд╕реАрдЦрдирд╛) рдкреВрд░рд╛ рдХрд░реЗрдВ:
- рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдПрдЖрдИ рдФрд░ Python рдХреА рдорджрдж рд╕реЗ рдСрдкреНрдЯрд┐рдХрд▓ рдХреИрд░реЗрдХреНрдЯрд░ рд░рд┐рдХрдЧреНрдирд┐рд╢рди (рдУрд╕реАрдЖрд░) рдХреА рд╕реБрд╡рд┐рдзрд╛
- рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдПрдЖрдИ (Python) рдХреА рдорджрдж рд╕реЗ рдлрд╝реЙрд░реНрдо рдкрд╛рд░реНрд╕ рдХрд░рдирд╛
рдЖрдкрдХреЛ рдЗрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдорд┐рд▓реЗрдЧреА
- рдЦрд╛рд╕ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрдкреНрд▓рд┐рдЯ рдкреЙрдЗрдВрдЯ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХреИрдЯрдЧрд░реА рдореЗрдВ рдмрд╛рдВрдЯрдиреЗ рдХрд╛ рддрд░реАрдХрд╛.
- рдЦрд╛рд╕ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдХреЗ, рд╕реНрдХреАрдорд╛ рдореЗрдВ рдмрдирд╛рдИ рдЧрдИ рдЗрдХрд╛рдЗрдпрд╛рдВ рдПрдХреНрд╕рдЯреНрд░реИрдХреНрдЯ рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛.
рдЖрдкрдХреЛ рдЗрди рдЪреАрдЬрд╝реЛрдВ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реЛрдЧреА
2. рд╕реЗрдЯ рдЕрдк рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ
рдХреЛрдбрд▓реИрдм рдХреЗ рдЗрд╕ рдЯреВрд▓ рдореЗрдВ рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдХреЛрдбрд▓реИрдм рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╢реБрд░реБрдЖрддреА рдЬрд╛рдирдХрд╛рд░реА рдореЗрдВ рджрд┐рдП рдЧрдП, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рдПрдЖрдИ рдХреЛ рд╕реЗрдЯрдЕрдк рдХрд░рдиреЗ рдХреЗ рд╕рднреА рдЪрд░рдгреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ.
рдЖрдЧреЗ рдмрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдХреГрдкрдпрд╛ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЪрд░рдгреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░реЗрдВ:
- Cloud Shell рд╢реБрд░реВ рдХрд░рдирд╛
- Document AI API рдХреЛ рдЪрд╛рд▓реВ рдХрд░рдирд╛
- Python рдХреНрд▓рд╛рдЗрдВрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдирд╛
рдЖрдкрдХреЛ Pandas рднреА рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ Python рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рд▓реЛрдХрдкреНрд░рд┐рдп рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИ.
pip3 install --upgrade pandas
3. рдЦрд╛рд╕ рдкреНрд░реЛрд╕реЗрд╕рд░ рдмрдирд╛рдПрдВ
рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рд▓рд┐рдП рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдмрдирд╛рдиреЗ рд╣реЛрдВрдЧреЗ.
- рдХрдВрд╕реЛрд▓ рдореЗрдВ, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдПрдЖрдИ рдкреНрд▓реИрдЯрдлрд╝реЙрд░реНрдо рдХреА рдЦрд╛рд╕ рдЬрд╛рдирдХрд╛рд░реА рдкрд░ рдЬрд╛рдПрдВ
- рдкреНрд░реЛрд╕реЗрд╕рд░ рдмрдирд╛рдПрдВ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ. рдиреАрдЪреЗ рд╕реНрдХреНрд░реЛрд▓ рдХрд░рдХреЗ рдЦрд╛рд╕ рдкреНрд░реЛрд╕реЗрд╕ рдХреЗ рд▓рд┐рдП рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рдкреНрд░реЛрдХреНрдпреЛрд░рдореЗрдВрдЯ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╕реНрдкреНрд▓рд┐рдЯрд░ рдЪреБрдиреЗрдВ.
- рдЗрд╕реЗ "рдХреЛрдбрд▓реИрдм-рдкреНрд░реЛрдХреНрдпреЛрд░рдореЗрдВрдЯ-рд╕реНрдкреНрд▓рд┐рдЯрд░" рдирд╛рдо рджреЗрдВ (рдпрд╛ рдХреБрдЫ рдФрд░, рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рдпрд╛рдж рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП) рдФрд░ рд╕реВрдЪреА рд╕реЗ рдЕрдкрдирд╛ рд╕рдмрд╕реЗ рдирдЬрд╝рджреАрдХреА рдЗрд▓рд╛рдХрд╛ рдЪреБрдиреЗрдВ.
- рдЕрдкрдирд╛ рдкреНрд░реЛрд╕реЗрд╕рд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрдирд╛рдПрдВ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ
- рдкреНрд░реЛрд╕реЗрд╕рд░ рдЖрдИрдбреА рдХреЛ рдХреЙрдкреА рдХрд░реЗрдВ. рдЖрдкрдХреЛ рдмрд╛рдж рдореЗрдВ рдЕрдкрдиреЗ рдХреЛрдб рдореЗрдВ рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛.
- рдЗрдирд╡реЙрдЗрд╕ рдкрд╛рд░реНрд╕рд░ рдХреЗ рд╕рд╛рде рджреВрд╕рд░реЗ рд╕реЗ рдЫрдареЗ рдЪрд░рдг рддрдХ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджреЛрд╣рд░рд╛рдПрдВ. рдЗрд╕реЗ "codelab-invoice-parser" рдХреЗ рдирд╛рдо рд╕реЗ рднреА рдЬрд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
Console рдореЗрдВ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛
рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдЕрдкрд▓реЛрдб рдХрд░рдХреЗ, рдХрдВрд╕реЛрд▓ рдореЗрдВ рдЗрдирд╡реЙрдЗрд╕ рдкрд╛рд░реНрд╕рд░ рдХреА рдЬрд╛рдВрдЪ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ.
'рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдЕрдкрд▓реЛрдб рдХрд░реЗрдВ' рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЗрдирд╡реЙрдЗрд╕ рдЪреБрдиреЗрдВ. рдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЗрдирд╡реЙрдЗрд╕ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ, рддреЛ рдЗрд╕ рд╕реИрдВрдкрд▓ рдЗрдирд╡реЙрдЗрд╕ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдХреЗ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ.
рдЖрдкрдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рдХреБрдЫ рдРрд╕рд╛ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:
4. рд╕реИрдВрдкрд▓ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ
рдЗрд╕ рд▓реИрдм рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕реИрдВрдкрд▓ рдХреЗ рддреМрд░ рдкрд░ рдХреБрдЫ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╣реИрдВ.
рдпрд╣рд╛рдВ рджрд┐рдП рдЧрдП рд▓рд┐рдВрдХ рдХреА рдорджрдж рд╕реЗ, PDF рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ. рдЗрд╕рдХреЗ рдмрд╛рдж, рдЙрдиреНрд╣реЗрдВ Cloud Shell рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдореЗрдВ рдЕрдкрд▓реЛрдб рдХрд░реЗрдВ.
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЙрдиреНрд╣реЗрдВ gsutil
рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдХреЗ, рд╣рдорд╛рд░реЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ Cloud Storage рдмрдХреЗрдЯ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ.
gsutil cp gs://cloud-samples-data/documentai/codelabs/specialized-processors/procurement_multi_document.pdf .
gsutil cp gs://cloud-samples-data/documentai/codelabs/specialized-processors/google_invoice.pdf .
5. рд╡рд░реНрдЧреАрдХрд░рдг рдХрд░реЗрдВ рдФрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреЛ рдмрд╛рдВрдЯреЛ
рдЗрд╕ рдЪрд░рдг рдореЗрдВ, рдПрдХ рд╕реЗ рдЬрд╝реНрдпрд╛рджрд╛ рдкреЗрдЬреЛрдВ рд╡рд╛рд▓реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рд▓реЙрдЬрд┐рдХрд▓ рд╕реНрдкреНрд▓рд┐рдЯ рдкреЙрдЗрдВрдЯ рдХреА рдХреИрдЯрдЧрд░реА рддрдп рдХрд░рдиреЗ рдФрд░ рдЙрдирдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдСрдирд▓рд╛рдЗрди рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдПрдкреАрдЖрдИ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ.
рдЕрдЧрд░ рдЖрдкрдХреЛ рдПрдХ рд╕реЗ рдЬрд╝реНрдпрд╛рджрд╛ рдлрд╝рд╛рдЗрд▓реЗрдВ рднреЗрдЬрдиреА рд╣реИрдВ рдпрд╛ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рд╕рд╛рдЗрдЬрд╝, рдСрдирд▓рд╛рдЗрди рдкреНрд░реЛрд╕реЗрд╕ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЬрд╝реНрдпрд╛рджрд╛ рд╕реЗ рдЬрд╝реНрдпрд╛рджрд╛ рдкреЗрдЬреЛрдВ рд╕реЗ рдЬрд╝реНрдпрд╛рджрд╛ рд╣реИ, рддрдм рднреА рдмреИрдЪ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдПрдкреАрдЖрдИ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ. рдЗрд╕рдХрд╛ рддрд░реАрдХрд╛ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП, Document AI рдУрд╕реАрдЖрд░ рдХреЛрдбрд▓реИрдм рдореЗрдВ рдЬрд╛рдПрдВ.
рдПрдкреАрдЖрдИ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХрд╛ рдХреЛрдб, рдкреНрд░реЛрд╕реЗрд╕рд░ рдЖрдИрдбреА рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд┐рд╕реА рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдЬреИрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ.
рдкреНрд░реЛрдХреНрдпреЛрд░рдореЗрдВрдЯ рд╕реНрдкреНрд▓рд┐рдЯрд░/рдХреНрд▓рд╛рд╕рд┐рдлрд╝рд╛рдпрд░
classification.py
рдирд╛рдо рдХреА рдПрдХ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдВ рдФрд░ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХреЛрдб рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░реЗрдВ.
PROCUREMENT_SPLITTER_ID
рдХреА рдЬрдЧрд╣ рдЙрд╕ рдЖрдИрдбреА рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░реЗрдВ рдЬрд┐рд╕реЗ рдЖрдкрдиреЗ рдкреНрд░реЛрдХреНрдпреЛрд░рдореЗрдВрдЯ рд╕реНрдкреНрд▓рд┐рдЯрд░ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рдмрдирд╛рдпрд╛ рдерд╛. YOUR_PROJECT_ID
рдФрд░ YOUR_PROJECT_LOCATION
рдХреЛ рдЕрдкрдиреЗ Cloud рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЖрдИрдбреА рдФрд░ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреА рдЬрдЧрд╣ рдХреА рдЬрд╛рдирдХрд╛рд░реА рд╕реЗ рдмрджрд▓реЗрдВ.
classification.py
import pandas as pd
from google.cloud import documentai_v1 as documentai
def online_process(
project_id: str,
location: str,
processor_id: str,
file_path: str,
mime_type: str,
) -> documentai.Document:
"""
Processes a document using the Document AI Online Processing API.
"""
opts = {"api_endpoint": f"{location}-documentai.googleapis.com"}
# Instantiates a client
documentai_client = documentai.DocumentProcessorServiceClient(client_options=opts)
# The full resource name of the processor, e.g.:
# projects/project-id/locations/location/processor/processor-id
# You must create new processors in the Cloud Console first
resource_name = documentai_client.processor_path(project_id, location, processor_id)
# Read the file into memory
with open(file_path, "rb") as file:
file_content = file.read()
# Load Binary Data into Document AI RawDocument Object
raw_document = documentai.RawDocument(content=file_content, mime_type=mime_type)
# Configure the process request
request = documentai.ProcessRequest(name=resource_name, raw_document=raw_document)
# Use the Document AI client to process the sample form
result = documentai_client.process_document(request=request)
return result.document
PROJECT_ID = "YOUR_PROJECT_ID"
LOCATION = "YOUR_PROJECT_LOCATION" # Format is 'us' or 'eu'
PROCESSOR_ID = "PROCUREMENT_SPLITTER_ID" # Create processor in Cloud Console
# The local file in your current working directory
FILE_PATH = "procurement_multi_document.pdf"
# Refer to https://cloud.google.com/document-ai/docs/processors-list
# for supported file types
MIME_TYPE = "application/pdf"
document = online_process(
project_id=PROJECT_ID,
location=LOCATION,
processor_id=PROCESSOR_ID,
file_path=FILE_PATH,
mime_type=MIME_TYPE,
)
print("Document processing complete.")
types = []
confidence = []
pages = []
# Each Document.entity is a classification
for entity in document.entities:
classification = entity.type_
types.append(classification)
confidence.append(f"{entity.confidence:.0%}")
# entity.page_ref contains the pages that match the classification
pages_list = []
for page_ref in entity.page_anchor.page_refs:
pages_list.append(page_ref.page)
pages.append(pages_list)
# Create a Pandas Dataframe to print the values in tabular format.
df = pd.DataFrame({"Classification": types, "Confidence": confidence, "Pages": pages})
print(df)
рдЖрдкрдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рдХреБрдЫ рдРрд╕рд╛ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:
$ python3 classification.py Document processing complete. Classification Confidence Pages 0 invoice_statement 100% [0] 1 receipt_statement 98% [1] 2 other 81% [2] 3 utility_statement 100% [3] 4 restaurant_statement 100% [4]
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдкреНрд░реЛрдХреНрдпреЛрд░рдореЗрдВрдЯ рд╕реНрдкреНрд▓рд┐рдЯрд░/рдХреНрд▓рд╛рд╕рд┐рдлрд╝рд╛рдпрд░ рдиреЗ рдкреЗрдЬ 0-1 рдФрд░ 3-4 рдкрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рдЯрд╛рдЗрдк рдХреА рд╕рд╣реА рдкрд╣рдЪрд╛рди рдХреА рд╣реИ.
рдкреЗрдЬ 2 рдореЗрдВ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдореЗрдбрд┐рдХрд▓ рдЗрдирдЯреЗрдХ рдлрд╝реЙрд░реНрдо рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреНрд▓рд╛рд╕рд┐рдлрд╝рд╛рдпрд░ рдиреЗ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдЗрд╕рдХреА рдкрд╣рдЪрд╛рди other
рдХреЗ рддреМрд░ рдкрд░ рдХреА рд╣реИ.
6. рдЗрдХрд╛рдЗрдпреЛрдВ рдХреЛ рдирд┐рдХрд╛рд▓реЗрдВ
рдЕрдм рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ рд╕реНрдХреАрдорд╛ рд╡рд╛рд▓реА рдЗрдХрд╛рдЗрдпрд╛рдВ рдПрдХреНрд╕рдЯреНрд░реИрдХреНрдЯ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ. рдЗрдирдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдбреЗрдВрд╕ рд╕реНрдХреЛрд░, рдкреНрд░реЙрдкрд░реНрдЯреА, рдФрд░ рдиреЙрд░реНрдорд▓рд╛рдЗрдЬрд╝ рдХреА рдЧрдИ рд╡реИрд▓реНрдпреВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ.
рдПрдкреАрдЖрдИ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХрд╛ рдХреЛрдб, рдкрд┐рдЫрд▓реЗ рдЪрд░рдг рдХреЗ рдХреЛрдб рдЬреИрд╕рд╛ рд╣реА рд╣реИ. рдЗрд╕реЗ рдСрдирд▓рд╛рдЗрди рдпрд╛ рдПрдХ рд╕рд╛рде рдХрдИ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ.
рд╣рдо рдЗрдХрд╛рдЗрдпреЛрдВ рд╕реЗ рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рдРрдХреНрд╕реЗрд╕ рдХрд░реЗрдВрдЧреЗ:
- рдЗрдХрд╛рдИ рдкреНрд░рдХрд╛рд░
- (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП
invoice_date
,receiver_name
,total_amount
)
- (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП
- рдЕрдкрд░рд┐рд╖реНрдХреГрдд рдореВрд▓реНрдп
- рдбреЗрдЯрд╛ рдХреА рд╡реЗ рд╡реИрд▓реНрдпреВ рдЬреЛ рдУрд░рд┐рдЬрдирд▓ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рджреА рдЧрдИ рд╣реИрдВ.
- рд╕рд╛рдорд╛рдиреНрдпрд┐рдд рдорд╛рди
- рдЕрдЧрд░ рд▓рд╛рдЧреВ рд╣реЛ, рддреЛ рд╕рд╛рдорд╛рдиреНрдп рдФрд░ рд╕реНрдЯреИрдВрдбрд░реНрдб рдлрд╝реЙрд░реНрдореИрдЯ рдореЗрдВ рдбреЗрдЯрд╛ рд╡реИрд▓реНрдпреВ.
- рдЗрд╕рдореЗрдВ Enterprise рдиреЙрд▓реЗрдЬ рдЧреНрд░рд╛рдлрд╝ рд╕реЗ рдмреЗрд╣рддрд░ рдЬрд╛рдирдХрд╛рд░реА рднреА рд╢рд╛рдорд┐рд▓ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ
- рдХреЙрдиреНрдлрд╝рд┐рдбреЗрдВрд╕ рд╡реИрд▓реНрдпреВ
- "рдХреНрдпреЛрдВ рдирд╣реАрдВ" рдореЙрдбрд▓ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╡реИрд▓реНрдпреВ рд╕рдЯреАрдХ рд╣реИрдВ.
рдЗрдХрд╛рдИ рдХреЗ рдХреБрдЫ рдЯрд╛рдЗрдк, рдЬреИрд╕реЗ рдХрд┐ line_item
рдореЗрдВ рдкреНрд░реЙрдкрд░реНрдЯреА рднреА рд╢рд╛рдорд┐рд▓ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ. рдпреЗ рдкреНрд░реЙрдкрд░реНрдЯреА line_item/unit_price
рдФрд░ line_item/description
рдЬреИрд╕реА рдиреЗрд╕реНрдЯ рдХреА рдЧрдИ рдЗрдХрд╛рдЗрдпрд╛рдВ рд╣реЛрддреА рд╣реИрдВ.
рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдиреЗрд╕реНрдЯ рдХрд┐рдП рдЧрдП рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдХреЛ рдлрд╝реНрд▓реИрдЯ рдХрд░рддрд╛ рд╣реИ, рддрд╛рдХрд┐ рдЖрд╕рд╛рдиреА рд╕реЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХреЗ.
рдЗрдирд╡реЙрдЗрд╕ рдкрд╛рд░реНрд╕рд░
extraction.py
рдирд╛рдо рдХреА рдПрдХ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдВ рдФрд░ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХреЛрдб рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░реЗрдВ.
INVOICE_PARSER_ID
рдХреА рдЬрдЧрд╣ рдЙрд╕ рдЗрдирд╡реЙрдЗрд╕ рдкрд╛рд░реНрд╕рд░ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХрд╛ рдЖрдИрдбреА рдбрд╛рд▓реЗрдВ рдЬреЛ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рдмрдирд╛рдпрд╛ рдерд╛ рдФрд░ google_invoice.pdf
рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░реЗрдВ
extraction.py
import pandas as pd
from google.cloud import documentai_v1 as documentai
def online_process(
project_id: str,
location: str,
processor_id: str,
file_path: str,
mime_type: str,
) -> documentai.Document:
"""
Processes a document using the Document AI Online Processing API.
"""
opts = {"api_endpoint": f"{location}-documentai.googleapis.com"}
# Instantiates a client
documentai_client = documentai.DocumentProcessorServiceClient(client_options=opts)
# The full resource name of the processor, e.g.:
# projects/project-id/locations/location/processor/processor-id
# You must create new processors in the Cloud Console first
resource_name = documentai_client.processor_path(project_id, location, processor_id)
# Read the file into memory
with open(file_path, "rb") as file:
file_content = file.read()
# Load Binary Data into Document AI RawDocument Object
raw_document = documentai.RawDocument(content=file_content, mime_type=mime_type)
# Configure the process request
request = documentai.ProcessRequest(name=resource_name, raw_document=raw_document)
# Use the Document AI client to process the sample form
result = documentai_client.process_document(request=request)
return result.document
PROJECT_ID = "YOUR_PROJECT_ID"
LOCATION = "YOUR_PROJECT_LOCATION" # Format is 'us' or 'eu'
PROCESSOR_ID = "INVOICE_PARSER_ID" # Create processor in Cloud Console
# The local file in your current working directory
FILE_PATH = "google_invoice.pdf"
# Refer to https://cloud.google.com/document-ai/docs/processors-list
# for supported file types
MIME_TYPE = "application/pdf"
document = online_process(
project_id=PROJECT_ID,
location=LOCATION,
processor_id=PROCESSOR_ID,
file_path=FILE_PATH,
mime_type=MIME_TYPE,
)
types = []
raw_values = []
normalized_values = []
confidence = []
# Grab each key/value pair and their corresponding confidence scores.
for entity in document.entities:
types.append(entity.type_)
raw_values.append(entity.mention_text)
normalized_values.append(entity.normalized_value.text)
confidence.append(f"{entity.confidence:.0%}")
# Get Properties (Sub-Entities) with confidence scores
for prop in entity.properties:
types.append(prop.type_)
raw_values.append(prop.mention_text)
normalized_values.append(prop.normalized_value.text)
confidence.append(f"{prop.confidence:.0%}")
# Create a Pandas Dataframe to print the values in tabular format.
df = pd.DataFrame(
{
"Type": types,
"Raw Value": raw_values,
"Normalized Value": normalized_values,
"Confidence": confidence,
}
)
print(df)
рдЖрдкрдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рдХреБрдЫ рдРрд╕рд╛ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:
$ python3 extraction.py Type Raw Value Normalized Value Confidence 0 vat $1,767.97 100% 1 vat/tax_amount $1,767.97 1767.97 USD 0% 2 invoice_date Sep 24, 2019 2019-09-24 99% 3 due_date Sep 30, 2019 2019-09-30 99% 4 total_amount 19,647.68 19647.68 97% 5 total_tax_amount $1,767.97 1767.97 USD 92% 6 net_amount 22,379.39 22379.39 91% 7 receiver_name Jane Smith, 83% 8 invoice_id 23413561D 67% 9 receiver_address 1600 Amphitheatre Pkway\nMountain View, CA 94043 66% 10 freight_amount $199.99 199.99 USD 56% 11 currency $ USD 53% 12 supplier_name John Smith 19% 13 purchase_order 23413561D 1% 14 receiver_tax_id 23413561D 0% 15 supplier_iban 23413561D 0% 16 line_item 9.99 12 12 ft HDMI cable 119.88 100% 17 line_item/unit_price 9.99 9.99 90% 18 line_item/quantity 12 12 77% 19 line_item/description 12 ft HDMI cable 39% 20 line_item/amount 119.88 119.88 92% 21 line_item 12 399.99 27" Computer Monitor 4,799.88 100% 22 line_item/quantity 12 12 80% 23 line_item/unit_price 399.99 399.99 91% 24 line_item/description 27" Computer Monitor 15% 25 line_item/amount 4,799.88 4799.88 94% 26 line_item Ergonomic Keyboard 12 59.99 719.88 100% 27 line_item/description Ergonomic Keyboard 32% 28 line_item/quantity 12 12 76% 29 line_item/unit_price 59.99 59.99 92% 30 line_item/amount 719.88 719.88 94% 31 line_item Optical mouse 12 19.99 239.88 100% 32 line_item/description Optical mouse 26% 33 line_item/quantity 12 12 78% 34 line_item/unit_price 19.99 19.99 91% 35 line_item/amount 239.88 239.88 94% 36 line_item Laptop 12 1,299.99 15,599.88 100% 37 line_item/description Laptop 83% 38 line_item/quantity 12 12 76% 39 line_item/unit_price 1,299.99 1299.99 90% 40 line_item/amount 15,599.88 15599.88 94% 41 line_item Misc processing fees 899.99 899.99 1 100% 42 line_item/description Misc processing fees 22% 43 line_item/unit_price 899.99 899.99 91% 44 line_item/amount 899.99 899.99 94% 45 line_item/quantity 1 1 63%
7. рд╡реИрдХрд▓реНрдкрд┐рдХ: рдЕрдиреНрдп рд╡рд┐рд╢реЗрд╖ рдкреНрд░реЛрд╕реЗрд╕рд░ рдЖрдЬрд╝рдорд╛рдПрдВ
рдЖрдкрдиреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреА рдХреИрдЯрдЧрд░реА рддрдп рдХрд░рдиреЗ рдФрд░ рдЗрдирд╡реЙрдЗрд╕ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░реЛрдХреНрдпреЛрд░рдореЗрдВрдЯ рдХреЗ рд▓рд┐рдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдПрдЖрдИ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ. рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдПрдЖрдИ, рдпрд╣рд╛рдВ рджрд┐рдП рдЧрдП рдЕрдиреНрдп рдЦрд╛рд╕ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
рдпрд╣реА рддрд░реАрдХрд╛ рдЕрдкрдирд╛рдПрдВ рдФрд░ рдХрд┐рд╕реА рдЦрд╛рд╕ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛ рд╣реИрдВрдбрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрд╕реА рдХреЛрдб рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░реЗрдВ.
рдЕрдЧрд░ рдЖрдк рдЕрдиреНрдп рд╡рд┐рд╢реЗрд╖ рд╕рдорд╛рдзрд╛рди рдЖрдЬрд╝рдорд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЕрдиреНрдп рдкреНрд░реЛрд╕реЗрд╕рд░ рдкреНрд░рдХрд╛рд░реЛрдВ рдФрд░ рд╡рд┐рд╢реЗрд╖ рдирдореВрдирд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреЗ рд╕рд╛рде рд▓реИрдм рдХреЛ рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ.
рдирдореВрдиреЗ рдХреЗ рддреМрд░ рдкрд░ рджрд┐рдП рдЧрдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝
рдпрд╣рд╛рдВ рдХреБрдЫ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреЗ рд╕реИрдВрдкрд▓ рджрд┐рдП рдЧрдП рд╣реИрдВ. рдЗрдирдХреА рдорджрдж рд╕реЗ, рдЕрдиреНрдп рдЦрд╛рд╕ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛ рдЖрдЬрд╝рдорд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ.
рд╕рдорд╛рдзрд╛рди | рдкреНрд░реЛрд╕реЗрд╕рд░ рдХрд╛ рдЯрд╛рдЗрдк | рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ |
рдкрд╣рдЪрд╛рди | рдЕрдореЗрд░рд┐рдХрд╛ рдХрд╛ рдбреНрд░рд╛рдЗрд╡рд┐рдВрдЧ рд▓рд╛рдЗрд╕реЗрдВрд╕ рдкрд╛рд░реНрд╕рд░ | |
рд╡рд╛рд╣рди рдХреЗ рд▓рд┐рдП рдХрд░реНреЫ рд▓реЗрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╕реЗрд╡рд╛ | ||
рд╡рд╛рд╣рди рдХреЗ рд▓рд┐рдП рдХрд░реНреЫ рд▓реЗрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╕реЗрд╡рд╛ | ||
рд╕рдордЭреМрддреЗ |
рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ, рдЖрдкрдХреЛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рдЕрдиреНрдп рд╕реИрдВрдкрд▓ рдФрд░ рдкреНрд░реЛрд╕реЗрд╕рд░ рдЖрдЙрдЯрдкреБрдЯ рдорд┐рд▓ рд╕рдХрддреЗ рд╣реИрдВ.
8. рдмрдзрд╛рдИ рд╣реЛ
рдмрдзрд╛рдИ рд╣реЛ, рдЖрдкрдиреЗ рдЦрд╛рд╕ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рд╕реЗ рдбреЗрдЯрд╛ рдирд┐рдХрд╛рд▓рдиреЗ рдФрд░ рдЙрд╕рдХреА рдХреИрдЯрдЧрд░реА рддрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдПрдЖрдИ (AI) рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ. рд╣рдо рдЖрдкрдХреЛ рдЕрдиреНрдп рдЦрд╛рд╕ рддрд░рд╣ рдХреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рддреЗ рд╣реИрдВ.
рдорд┐рдЯрд╛рдирд╛
рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдП рдЧрдП рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЗ Google Cloud рдЦрд╛рддреЗ рдкрд░ рд▓рдЧрдиреЗ рд╡рд╛рд▓реЗ рд╢реБрд▓реНрдХ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП:
- Cloud Console рдореЗрдВ, рд╕рдВрд╕рд╛рдзрди рдореИрдиреЗрдЬ рдХрд░реЗрдВ рдкреЗрдЬ рдкрд░ рдЬрд╛рдПрдВ.
- рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рд╕реВрдЪреА рдореЗрдВ, рдЕрдкрдирд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЪреБрдиреЗрдВ. рдЗрд╕рдХреЗ рдмрд╛рдж, 'рдорд┐рдЯрд╛рдПрдВ' рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ.
- рдбрд╛рдпрд▓реЙрдЧ рдмреЙрдХреНрд╕ рдореЗрдВ, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЖрдИрдбреА рдЯрд╛рдЗрдк рдХрд░реЗрдВ. рдЗрд╕рдХреЗ рдмрд╛рдж, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдорд┐рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП 'рд╢рдЯ рдбрд╛рдЙрди рдХрд░реЗрдВ' рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ.
рдЬрд╝реНрдпрд╛рджрд╛ рдЬрд╛рдиреЗрдВ
рдЗрди рдлрд╝реЙрд▓реЛ-рдЕрдк рдХреЛрдбрд▓реИрдм рдХреА рдорджрдж рд╕реЗ, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдПрдЖрдИ (AI) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╝реНрдпрд╛рджрд╛ рдЬрд╛рдиреЗрдВ.
- Python рдХреА рдорджрдж рд╕реЗ, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рдПрдЖрдИ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛ рдореИрдиреЗрдЬ рдХрд░рдирд╛
- рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдПрдЖрдИ: рд╣реНрдпреВрдорди рдЗрди рдж рд▓реВрдк
- рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдПрдЖрдИ рд╡рд░реНрдХрдмреЗрдВрдЪ: рдЕрдкрдЯреНрд░реЗрдирд┐рдВрдЧ
- рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдПрдЖрдИ рд╡рд░реНрдХрдмреЗрдВрдЪ: рдХрд╕реНрдЯрдо рдкреНрд░реЛрд╕реЗрд╕рд░
рд╕рдВрд╕рд╛рдзрди
- рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХрд╛ рднрд╡рд┐рд╖реНрдп - YouTube рдкреНрд▓реЗрд▓рд┐рд╕реНрдЯ
- рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдПрдЖрдИ рд╕реЗ рдЬреБрдбрд╝рд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝
- рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдПрдЖрдИ Python рдХреНрд▓рд╛рдЗрдВрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА
- рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рдПрдЖрдИ рд╕реИрдВрдкрд▓
рд▓рд╛рдЗрд╕реЗрдВрд╕
рдЗрд╕ рдХрд╛рдо рдХреЛ рдХреНрд░рд┐рдПрдЯрд┐рд╡ рдХреЙрдордВрд╕ рдПрдЯреНрд░рд┐рдмреНрдпреВрд╢рди 2.0 рдЬреЗрдирд░рд┐рдХ рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреЗ рддрд╣рдд рд▓рд╛рдЗрд╕реЗрдВрд╕ рдорд┐рд▓рд╛ рд╣реИ.