Source code for langchain_community.document_loaders.figma

import json
import urllib.request
from typing import Any, List

from langchain_core.documents import Document
from langchain_core.utils import stringify_dict

from langchain_community.document_loaders.base import BaseLoader


[docs]class FigmaFileLoader(BaseLoader): """加载`Figma`文件。"""
[docs] def __init__(self, access_token: str, ids: str, key: str): """初始化,使用访问令牌、ids和密钥。 参数: access_token:Figma REST API的访问令牌。 ids:Figma文件的ids。 key:Figma文件的密钥。 """ self.access_token = access_token self.ids = ids self.key = key
def _construct_figma_api_url(self) -> str: api_url = "https://api.figma.com/v1/files/%s/nodes?ids=%s" % ( self.key, self.ids, ) return api_url def _get_figma_file(self) -> Any: """从Figma REST API 获取 Figma 文件。""" headers = {"X-Figma-Token": self.access_token} request = urllib.request.Request( self._construct_figma_api_url(), headers=headers ) with urllib.request.urlopen(request) as response: json_data = json.loads(response.read().decode()) return json_data
[docs] def load(self) -> List[Document]: """加载文件""" data = self._get_figma_file() text = stringify_dict(data) metadata = {"source": self._construct_figma_api_url()} return [Document(page_content=text, metadata=metadata)]