Skip to content

Azure cv

AzureCVToolSpec #

Bases: BaseToolSpec

Azure认知视觉工具规范。

Source code in llama_index/tools/azure_cv/base.py
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
class AzureCVToolSpec(BaseToolSpec):
    """Azure认知视觉工具规范。"""

    spec_functions = ["process_image"]

    def __init__(
        self,
        resource: str,
        api_key: str,
        language: Optional[str] = "en",
        api_version: Optional[str] = "2023-04-01-preview",
    ) -> None:
        """使用参数进行初始化。"""
        self.api_key = api_key
        self.cv_url = CV_URL_TMPL.format(resource=resource)
        self.language = language
        self.api_version = api_version

    def process_image(self, url: str, features: List[str]):
        """这个工具接受一个图片的URL或文件,并根据使用情况处理并返回各种文本。您可以使用features参数来配置想要返回的文本内容。

Args:
    url (str): 要描述的图片的URL
    features (List[str]): 如何处理图片的指令。有效的关键字包括tags, objects, read, caption
"""
        response = requests.post(
            f'{self.cv_url}?features={",".join(features)}&language={self.language}&api-version={self.api_version}',
            headers={"Ocp-Apim-Subscription-Key": self.api_key},
            json={"url": url},
        )
        response_json = response.json()
        if "read" in features:
            response_json["readResult"] = response_json["readResult"]["content"]

        return response_json

process_image #

process_image(url: str, features: List[str])

这个工具接受一个图片的URL或文件,并根据使用情况处理并返回各种文本。您可以使用features参数来配置想要返回的文本内容。

Parameters:

Name Type Description Default
url str

要描述的图片的URL

required
features List[str]

如何处理图片的指令。有效的关键字包括tags, objects, read, caption

required
Source code in llama_index/tools/azure_cv/base.py
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
    def process_image(self, url: str, features: List[str]):
        """这个工具接受一个图片的URL或文件,并根据使用情况处理并返回各种文本。您可以使用features参数来配置想要返回的文本内容。

Args:
    url (str): 要描述的图片的URL
    features (List[str]): 如何处理图片的指令。有效的关键字包括tags, objects, read, caption
"""
        response = requests.post(
            f'{self.cv_url}?features={",".join(features)}&language={self.language}&api-version={self.api_version}',
            headers={"Ocp-Apim-Subscription-Key": self.api_key},
            json={"url": url},
        )
        response_json = response.json()
        if "read" in features:
            response_json["readResult"] = response_json["readResult"]["content"]

        return response_json