



from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_tf_available, is_torch_available


__A							       =		{
    '''configuration_rag''': ['''RagConfig'''],
    '''retrieval_rag''': ['''RagRetriever'''],
    '''tokenization_rag''': ['''RagTokenizer'''],
}

try:
	if not is_torch_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	__A							       =		[
	    '''RagModel''',
	    '''RagPreTrainedModel''',
	    '''RagSequenceForGeneration''',
	    '''RagTokenForGeneration''',
	]

try:
	if not is_tf_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	__A							       =		[
	    '''TFRagModel''',
	    '''TFRagPreTrainedModel''',
	    '''TFRagSequenceForGeneration''',
	    '''TFRagTokenForGeneration''',
	]


if TYPE_CHECKING:
	from .configuration_rag import RagConfig
	from .retrieval_rag import RagRetriever
	from .tokenization_rag import RagTokenizer

	try:
		if not is_torch_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .modeling_rag import RagModel, RagPreTrainedModel, RagSequenceForGeneration, RagTokenForGeneration

	try:
		if not is_tf_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .modeling_tf_rag import (
		    TFRagModel,
		    TFRagPreTrainedModel,
		    TFRagSequenceForGeneration,
		    TFRagTokenForGeneration,
		)

else:
	import sys

	__A							       =		_LazyModule(__name__, globals()['''__file__'''], _import_structure, module_spec=__spec__)












from dataclasses import dataclass, field
from typing import ClassVar, Dict

from ..features import Features, Value
from .base import TaskTemplate




@dataclass(frozen=snake_case_							)
class 					UpperCamelCase_ (     snake_case_							):



	'''simple docstring'''




	lowerCAmelCase						=					field(default='''language-modeling'''			,   metadata={'''include_in_asdict_even_if_is_default''': True}							)

	lowerCAmelCase						=					Features({'''text''': Value('''string'''							)}							)
	lowerCAmelCase						=					Features({}							)
	lowerCAmelCase						=					"text"




	@property
	def 				_UpperCamelCase     (			self   )			->       Dict[str, str]:
								return {self.text_column: "text"}





