mirror of
				https://github.com/hwchase17/langchain.git
				synced 2025-11-04 02:03:32 +00:00 
			
		
		
		
	Moved the following modules to new package langchain-community in a backwards compatible fashion: ``` mv langchain/langchain/adapters community/langchain_community mv langchain/langchain/callbacks community/langchain_community/callbacks mv langchain/langchain/chat_loaders community/langchain_community mv langchain/langchain/chat_models community/langchain_community mv langchain/langchain/document_loaders community/langchain_community mv langchain/langchain/docstore community/langchain_community mv langchain/langchain/document_transformers community/langchain_community mv langchain/langchain/embeddings community/langchain_community mv langchain/langchain/graphs community/langchain_community mv langchain/langchain/llms community/langchain_community mv langchain/langchain/memory/chat_message_histories community/langchain_community mv langchain/langchain/retrievers community/langchain_community mv langchain/langchain/storage community/langchain_community mv langchain/langchain/tools community/langchain_community mv langchain/langchain/utilities community/langchain_community mv langchain/langchain/vectorstores community/langchain_community mv langchain/langchain/agents/agent_toolkits community/langchain_community mv langchain/langchain/cache.py community/langchain_community mv langchain/langchain/adapters community/langchain_community mv langchain/langchain/callbacks community/langchain_community/callbacks mv langchain/langchain/chat_loaders community/langchain_community mv langchain/langchain/chat_models community/langchain_community mv langchain/langchain/document_loaders community/langchain_community mv langchain/langchain/docstore community/langchain_community mv langchain/langchain/document_transformers community/langchain_community mv langchain/langchain/embeddings community/langchain_community mv langchain/langchain/graphs community/langchain_community mv langchain/langchain/llms community/langchain_community mv langchain/langchain/memory/chat_message_histories community/langchain_community mv langchain/langchain/retrievers community/langchain_community mv langchain/langchain/storage community/langchain_community mv langchain/langchain/tools community/langchain_community mv langchain/langchain/utilities community/langchain_community mv langchain/langchain/vectorstores community/langchain_community mv langchain/langchain/agents/agent_toolkits community/langchain_community mv langchain/langchain/cache.py community/langchain_community ``` Moved the following to core ``` mv langchain/langchain/utils/json_schema.py core/langchain_core/utils mv langchain/langchain/utils/html.py core/langchain_core/utils mv langchain/langchain/utils/strings.py core/langchain_core/utils cat langchain/langchain/utils/env.py >> core/langchain_core/utils/env.py rm langchain/langchain/utils/env.py ``` See .scripts/community_split/script_integrations.sh for all changes
		
			
				
	
	
		
			56 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
import json
 | 
						|
import urllib.request
 | 
						|
from typing import List
 | 
						|
 | 
						|
from langchain_core.documents import Document
 | 
						|
from langchain_core.utils import stringify_dict
 | 
						|
 | 
						|
from langchain_community.document_loaders.base import BaseLoader
 | 
						|
 | 
						|
SPREEDLY_ENDPOINTS = {
 | 
						|
    "gateways_options": "https://core.spreedly.com/v1/gateways_options.json",
 | 
						|
    "gateways": "https://core.spreedly.com/v1/gateways.json",
 | 
						|
    "receivers_options": "https://core.spreedly.com/v1/receivers_options.json",
 | 
						|
    "receivers": "https://core.spreedly.com/v1/receivers.json",
 | 
						|
    "payment_methods": "https://core.spreedly.com/v1/payment_methods.json",
 | 
						|
    "certificates": "https://core.spreedly.com/v1/certificates.json",
 | 
						|
    "transactions": "https://core.spreedly.com/v1/transactions.json",
 | 
						|
    "environments": "https://core.spreedly.com/v1/environments.json",
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
class SpreedlyLoader(BaseLoader):
 | 
						|
    """Load from `Spreedly` API."""
 | 
						|
 | 
						|
    def __init__(self, access_token: str, resource: str) -> None:
 | 
						|
        """Initialize with an access token and a resource.
 | 
						|
 | 
						|
        Args:
 | 
						|
            access_token: The access token.
 | 
						|
            resource: The resource.
 | 
						|
        """
 | 
						|
        self.access_token = access_token
 | 
						|
        self.resource = resource
 | 
						|
        self.headers = {
 | 
						|
            "Authorization": f"Bearer {self.access_token}",
 | 
						|
            "Accept": "application/json",
 | 
						|
        }
 | 
						|
 | 
						|
    def _make_request(self, url: str) -> List[Document]:
 | 
						|
        request = urllib.request.Request(url, headers=self.headers)
 | 
						|
 | 
						|
        with urllib.request.urlopen(request) as response:
 | 
						|
            json_data = json.loads(response.read().decode())
 | 
						|
            text = stringify_dict(json_data)
 | 
						|
            metadata = {"source": url}
 | 
						|
            return [Document(page_content=text, metadata=metadata)]
 | 
						|
 | 
						|
    def _get_resource(self) -> List[Document]:
 | 
						|
        endpoint = SPREEDLY_ENDPOINTS.get(self.resource)
 | 
						|
        if endpoint is None:
 | 
						|
            return []
 | 
						|
        return self._make_request(endpoint)
 | 
						|
 | 
						|
    def load(self) -> List[Document]:
 | 
						|
        return self._get_resource()
 |