Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/vrurg/raku-www-gcloud-api-vision
Google Cloud Vision API for WWW::GCloud
https://github.com/vrurg/raku-www-gcloud-api-vision
Last synced: about 2 months ago
JSON representation
Google Cloud Vision API for WWW::GCloud
- Host: GitHub
- URL: https://github.com/vrurg/raku-www-gcloud-api-vision
- Owner: vrurg
- License: artistic-2.0
- Created: 2023-08-17T00:35:51.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-04-11T23:52:12.000Z (9 months ago)
- Last Synced: 2024-10-11T20:56:51.670Z (2 months ago)
- Language: Raku
- Size: 76.2 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.html
- Changelog: ChangeLog.html
- License: LICENSE
Awesome Lists containing this project
README
README
hr,
img {
box-sizing: content-box
}
body::after,
body::before,
hr::after,
hr::before {
display: table;
content: ""
}
a,
a:not([href]) {
text-decoration: none
}hr,
svg:not(:root) {
overflow: hidden
}img,
table tr {
background-color: #fff
}pre,
table {
overflow: auto
}dl,
dl dt,
hr,
pre code,
pre>code,
td,
th {
padding: 0
}input,
pre code {
overflow: visible
}pre,
pre code {
word-wrap: normal
}body {
-ms-text-size-adjust: 100%;
-webkit-text-size-adjust: 100%;
color: #333;
font-family: "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
font-size: 16px;
line-height: 1.5;
word-wrap: break-word;
width: 820px;
margin: 2em auto;
}a {
background-color: transparent;
-webkit-text-decoration-skip: objects;
color: #4078c0
}a:active,
a:hover {
outline-width: 0;
text-decoration: underline
}h1 {
margin: .67em 0
}img {
border-style: none;
max-width: 100%
}h1,
h2 {
padding-bottom: .3em;
border-bottom: 1px solid #eee
}input {
font: inherit;
margin: 0;
font-family: inherit;
font-size: inherit;
line-height: inherit
}* {
box-sizing: border-box
}strong {
font-weight: 600
}body::after,
hr::after {
clear: both
}table {
border-spacing: 0;
border-collapse: collapse;
display: block;
width: 100%
}blockquote {
margin: 0;
padding: 0 1em;
color: #777;
border-left: .25em solid #ddd
}ol ol,
ul ol {
list-style-type: lower-roman
}ol ol ol,
ol ul ol,
ul ol ol,
ul ul ol {
list-style-type: lower-alpha
}dd {
margin-left: 0
}code {
font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace
}pre {
font: 12px Consolas, "Liberation Mono", Menlo, Courier, monospace
}input {
-webkit-font-feature-settings: "liga" 0;
font-feature-settings: "liga" 0
}body>:first-child {
margin-top: 0!important
}body>:last-child {
margin-bottom: 0!important
}a:not([href]) {
color: inherit
}blockquote,
dl,
ol,
p,
pre,
table,
ul {
margin-top: 0;
margin-bottom: 16px
}hr {
background: #e7e7e7;
height: .25em;
margin: 24px 0;
border: 0
}blockquote>:first-child {
margin-top: 0
}blockquote>:last-child {
margin-bottom: 0
}h1,
h2,
h3,
h4,
h5,
h6 {
margin-top: 24px;
margin-bottom: 16px;
font-weight: 600;
line-height: 1.25
}dl dt,
table th {
font-weight: 700
}h1 code,
h1 tt,
h2 code,
h2 tt,
h3 code,
h3 tt,
h4 code,
h4 tt,
h5 code,
h5 tt,
h6 code,
h6 tt {
font-size: inherit
}h1 {
font-size: 2em
}h2 {
font-size: 1.5em
}h3 {
font-size: 1.25em
}h4 {
font-size: 1em
}h5 {
font-size: .875em
}h6 {
font-size: .85em;
color: #777
}ol,
ul {
padding-left: 2em
}ol ol,
ol ul,
ul ol,
ul ul {
margin-top: 0;
margin-bottom: 0
}li>p {
margin-top: 16px
}li+li {
margin-top: .25em
}dl dt {
margin-top: 16px;
font-size: 1em;
font-style: italic
}dl dd {
padding: 0 16px;
margin-bottom: 16px
}table td,
table th {
padding: 6px 13px;
border: 1px solid #ddd
}table tr {
border-top: 1px solid #ccc
}table tr:nth-child(2n) {
background-color: #f8f8f8
}code {
padding: .2em 0;
margin: 0;
font-size: 85%;
background-color: rgba(0, 0, 0, .04);
border-radius: 3px
}code::after,
code::before {
letter-spacing: -.2em;
content: "\00a0"
}pre>code {
margin: 0;
font-size: 100%;
word-break: normal;
white-space: pre;
background: 0 0;
border: 0
}pre {
padding: 16px;
font-size: 85%;
line-height: 1.45;
background-color: #f7f7f7;
border-radius: 3px
}pre code {
display: inline;
max-width: auto;
margin: 0;
line-height: inherit;
background-color: transparent;
border: 0
}pre code::after,
pre code::before {
content: normal
}kbd {
display: inline-block;
padding: 3px 5px;
font: 11px Consolas, "Liberation Mono", Menlo, Courier, monospace;
line-height: 10px;
color: #555;
vertical-align: middle;
background-color: #fcfcfc;
border: 1px solid #ccc;
border-bottom-color: #bbb;
border-radius: 3px;
box-shadow: inset 0 -1px 0 #bbb
}hr {
border-bottom-color: #eee
}
.toc-level-1 .toc-text { padding-left: 1.5em; }
.toc-level-2 .toc-text { padding-left: 2.5em; }
.toc-level-3 .toc-text { padding-left: 3.5em; }
.toc-level-4 .toc-text { padding-left: 4.5em; }
.toc-level-5 .toc-text { padding-left: 5.5em; }
#TOC * { border-width: 0; }
li > p { margin: inherit; }
li > .pod-block-code { margin-top: 16px; }
Table of Contents
1NAME
2SYNOPSIS
3DESCRIPTION
3.1Status
4COPYRIGHT
5LICENSE
NAME
WWW::GCloud::API::Vision
-WWW::GCloud
implementation of Google Vision APISYNOPSIS
use v6.e.PREVIEW;
use WWW::GCloud;
use WWW::GCloud::API::Vision;
use WWW::GCloud::API::Vision::Types;my $gcloud = WWW::GCloud.new;
my $images = $gcloud.vision.images;my $queue = $images.annotation-queue;
given $queue {
.project("my-project-id");
# Create a new request to OCR-annotate an image. Subsequent calls to .request will queue new requests.
.request(
:file("my-image.ext"), # Can be a PNG, TIFF, GIF.
feature => ( :type(GCVFDocument), :model<builtin/latest> ),
# If several features to be added at once:
# features => [...],
-> $request {
# Here we can do things with the request object itself.
$request.feature(GCVFLogo); # Also search the image for logos.
# If there is something special about the input config...
# $request.set-input-config(...);# If the image is a multi-page one. .pages is an Array[UInt:D] attribute.
# $request.pages = 1,3;
}
);
}await $queue
.start
.andthen({
say "Annotate completed."
# .result is an instance of WWW::GCloud::R::Vision::BatchAnnotateImagesResponse
});DESCRIPTION
This module lacks complete documentation due to me not currently able to write it. Please, see some notes for
WWW::GCloud
framework. And look into exmaples/ where I tried to provide meaningful code to follow.Status
This module is pre-beta, pre-anything. It is incomplete and likely not well thought out at places. But it already lets you do a lot with your storages.
If there is anything you need but it is missing then, please, consider implementing it and submitting a PR. Any other approach would barely proces any outcome for what I do apologize!
Either way, this module can be used as a reference implementation for a
WWW::GGCloud
API.Do not hesitate to get in touch with me would you need any help. I know it could be annoying when a complex module has little to none docs. I'll do my best to fix the situation. But until then feel free to open an issue in the GitHub repository, even if it's just a question.
COPYRIGHT
(c) 2023, Vadim Belman <[email protected]>
LICENSE
Artistic License 2.0
See the LICENSE file in this distribution.