Skip to main content

Chat and text embedding abstractions for AI agents

Project description

kiarina-agi-text

English | 日本語

PyPI Python License

[!NOTE] What is this? Provides interchangeable chat models, chat logging, and text embeddings for AI agents.

Dependencies

Required Dependencies

Package Version License
kiarina-agi-base >=2.6.0 MIT
kiarina-agi-data >=2.6.0 MIT
kiarina-agi-file >=2.6.0 MIT
kiarina-utils-app >=2.4.0 MIT
kiarina-utils-common >=2.3.0 MIT
kiarina-utils-file >=2.3.1 MIT
LangChain >=1.0.0,<2 MIT
langchain-core >=1.0.0,<2 MIT
Pydantic >=2.11.7 MIT
pydantic-settings >=2.10.1 MIT
pydantic-settings-manager >=3.2.0 MIT

Optional Dependencies

Package Version License Extras
anthropic >=0.84.0,<1 MIT chat-provider-lc-anthropic
chat-provider-lc-anthropic-vertex
google-genai >=1.65.0,<3 Apache-2.0 chat-provider-lc-google-genai
text-embedding-provider-google
kiarina-lib-google >=2.3.1 MIT chat-provider-lc-anthropic-vertex
chat-provider-lc-google-genai
text-embedding-provider-google
kiarina-lib-openai >=2.3.1 MIT chat-provider-lc-openai
text-embedding-provider-openai
langchain-anthropic >=1.0.0,<2 MIT chat-provider-lc-anthropic
chat-provider-lc-anthropic-vertex
langchain-google-genai >=4.0.0,<5 MIT chat-provider-lc-google-genai
langchain-google-vertexai >=3.0.0,<4 MIT chat-provider-lc-anthropic-vertex
langchain-openai >=1.0.0,<2 MIT chat-provider-lc-openai
NumPy >=2.0 BSD-3-Clause text-embedding-provider-google
text-embedding-provider-mock
text-embedding-provider-openai
openai >=2.0.1,<3 Apache-2.0 chat-provider-lc-openai
text-embedding-provider-openai
tiktoken >=0.13.0 MIT text-embedding-provider-openai
ulid-py >=1.1.0 Apache-2.0 chat-provider-mock

The all Extra installs every optional dependency listed above.

Installation

pip install "kiarina-agi-text[all]"

Features

  • Chat Models Select a model by name or alias and receive one response or a stream. Tool calls and image, audio, video, and PDF inputs and outputs are also supported.
  • Text Embeddings Select a registered model and vectorize text through one API.

API Reference

kiarina.agi.chat_model

from kiarina.agi.chat_model import (
    ChatModel,
    ChatModelAlias,
    ChatModelConfig,
    ChatModelName,
    ChatModelSettings,
    ChatModelSpecifier,
    ChatOptions,
    chat_model_registry,
    invoke_chat,
    run_chat,
    settings_manager,
    stream_chat,
)
async def invoke_chat(
    messages: list[Message],
    *,
    tool_infos: list[ToolInfo] | None = None,
    chat_options: ChatOptions | None = None,
    cost_recorder: CostRecorder | None = None,
    run_context: RunContext,
) -> AIMessage: ...

async def run_chat(
    messages: list[Message],
    *,
    tool_infos: list[ToolInfo] | None = None,
    chat_options: ChatOptions | None = None,
    cost_recorder: CostRecorder | None = None,
    run_context: RunContext,
) -> AsyncIterator[AIMessageChunk | AIMessage]: ...

async def stream_chat(
    messages: list[Message],
    *,
    tool_infos: list[ToolInfo] | None = None,
    chat_options: ChatOptions | None = None,
    cost_recorder: CostRecorder | None = None,
    run_context: RunContext,
) -> AsyncIterator[AIMessageChunk | AIMessage]: ...

class ChatModel:
    def __init__(self, name: ChatModelName, config: ChatModelConfig) -> None: ...
    @property
    def provider_name(self) -> ChatProviderName: ...
    @property
    def provider_config(self) -> dict[str, Any]: ...
    @property
    def token_scale_factor(self) -> float: ...
    @property
    def provider(self) -> ChatProvider: ...
    def get_capabilities(self) -> ChatCapabilities: ...
    async def run(
        self,
        messages: list[Message],
        *,
        tool_infos: list[ToolInfo] | None = None,
        tool_choice: ToolChoice | None = None,
        parallel_tool_calls: bool | None = None,
        streaming: bool | None = None,
        cost_recorder: CostRecorder | None = None,
        run_context: RunContext,
    ) -> AsyncIterator[AIMessageChunk | AIMessage]: ...

class ChatModelConfig(BaseModel):
    provider_name: ChatProviderName
    provider_config: dict[str, Any] = {}
    token_scale_factor: float = 1.0
    visible: bool = True

class ChatOptions(TypedDict, total=False):
    chat_model: ChatModel | ChatModelSpecifier | None
    tool_choice: ToolChoice | None
    parallel_tool_calls: bool | None
    streaming: bool | None

ChatModelName: TypeAlias = str
ChatModelAlias: TypeAlias = str
ChatModelSpecifier: TypeAlias = ChatModelName | ChatModelAlias | str

chat_model_registry: ObjectRegistry[ChatModel, ChatModelConfig]
settings_manager: SettingsManager[ChatModelSettings]

ChatModelSettings is a Pydantic settings class with default, aliases, presets, and customs fields.

kiarina.agi.text_embedding_model

from kiarina.agi.text_embedding_model import (
    TextEmbeddingModel,
    TextEmbeddingModelAlias,
    TextEmbeddingModelConfig,
    TextEmbeddingModelName,
    TextEmbeddingModelSettings,
    TextEmbeddingModelSpecifier,
    TextEmbeddingOptions,
    embed_text,
    settings_manager,
    text_embedding_model_registry,
)
async def embed_text(
    text: str,
    *,
    text_embedding_options: TextEmbeddingOptions | None = None,
    cost_recorder: CostRecorder | None = None,
    run_context: RunContext,
) -> Embedding: ...

class TextEmbeddingModel:
    def __init__(
        self, name: TextEmbeddingModelName, config: TextEmbeddingModelConfig
    ) -> None: ...
    @property
    def provider_name(self) -> TextEmbeddingProviderName: ...
    @property
    def provider_config(self) -> dict[str, Any]: ...
    @property
    def provider(self) -> TextEmbeddingProvider: ...
    def get_space(self) -> EmbeddingSpace: ...
    async def embed(
        self,
        text: str,
        *,
        cost_recorder: CostRecorder | None = None,
        run_context: RunContext,
    ) -> Embedding: ...

class TextEmbeddingModelConfig(BaseModel):
    provider_name: TextEmbeddingProviderName
    provider_config: dict[str, Any] = {}
    visible: bool = True

class TextEmbeddingOptions(TypedDict, total=False):
    text_embedding_model: TextEmbeddingModel | TextEmbeddingModelSpecifier | None

TextEmbeddingModelName: TypeAlias = str
TextEmbeddingModelAlias: TypeAlias = str
TextEmbeddingModelSpecifier: TypeAlias = (
    TextEmbeddingModelName | TextEmbeddingModelAlias | str
)
text_embedding_model_registry: ObjectRegistry[
    TextEmbeddingModel, TextEmbeddingModelConfig
]
settings_manager: SettingsManager[TextEmbeddingModelSettings]

TextEmbeddingModelSettings has default, aliases, presets, and customs fields.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kiarina_agi_text-2.8.0.tar.gz (58.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kiarina_agi_text-2.8.0-py3-none-any.whl (84.3 kB view details)

Uploaded Python 3

File details

Details for the file kiarina_agi_text-2.8.0.tar.gz.

File metadata

  • Download URL: kiarina_agi_text-2.8.0.tar.gz
  • Upload date:
  • Size: 58.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for kiarina_agi_text-2.8.0.tar.gz
Algorithm Hash digest
SHA256 693bb6627f71e16cf841f3b41725e3715764cdc7ffb511469e0749bd6d986e71
MD5 982ef79f6d7c769a9ad7577b77b44596
BLAKE2b-256 e2681b6c207f3722820a35f4d5f2c861952953954b6107e18e8c33827b1da54c

See more details on using hashes here.

Provenance

The following attestation bundles were made for kiarina_agi_text-2.8.0.tar.gz:

Publisher: release-pypi.yml on kiarina/kiarina-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kiarina_agi_text-2.8.0-py3-none-any.whl.

File metadata

File hashes

Hashes for kiarina_agi_text-2.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1082b1a6c374f85da0c2ac715011344e444ce863995475e4698d04b9b0c710c6
MD5 fa41f398bcd24da1218aeac26c96f3dc
BLAKE2b-256 1523f4a1f6bc4bd3abda5fe5a831340a0a018cac9d0aa354be12a91860f850b5

See more details on using hashes here.

Provenance

The following attestation bundles were made for kiarina_agi_text-2.8.0-py3-none-any.whl:

Publisher: release-pypi.yml on kiarina/kiarina-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page