Skip to content

Commit

Permalink
Rework LMM interface
Browse files Browse the repository at this point in the history
  • Loading branch information
KaQuMiQ committed May 23, 2024
1 parent 324bbfd commit 350e24e
Show file tree
Hide file tree
Showing 76 changed files with 2,528 additions and 2,448 deletions.
18 changes: 9 additions & 9 deletions constraints
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# This file was autogenerated by uv via the following command:
# uv --no-cache pip compile pyproject.toml -o constraints --all-extras
annotated-types==0.6.0
annotated-types==0.7.0
# via pydantic
anyio==4.3.0
# via
Expand Down Expand Up @@ -38,7 +38,7 @@ mdurl==0.1.2
nodeenv==1.8.0
# via pyright
numpy==1.26.4
openai==1.26.0
openai==1.30.1
packaging==24.0
# via pytest
pbr==6.0.0
Expand All @@ -51,23 +51,23 @@ pydantic-core==2.18.2
# via pydantic
pygments==2.18.0
# via rich
pyright==1.1.361
pyright==1.1.364
pytest==7.4.4
# via
# pytest-asyncio
# pytest-cov
pytest-asyncio==0.23.6
pytest-asyncio==0.23.7
pytest-cov==4.1.0
pyyaml==6.0.1
# via bandit
regex==2024.4.28
regex==2024.5.15
# via tiktoken
requests==2.31.0
requests==2.32.2
# via tiktoken
rich==13.7.1
# via bandit
ruff==0.4.3
setuptools==69.5.1
ruff==0.4.4
setuptools==70.0.0
# via nodeenv
sniffio==1.3.1
# via
Expand All @@ -76,7 +76,7 @@ sniffio==1.3.1
# openai
stevedore==5.2.0
# via bandit
tiktoken==0.6.0
tiktoken==0.7.0
tqdm==4.66.4
# via openai
typing-extensions==4.11.0
Expand Down
21 changes: 13 additions & 8 deletions examples/BasicConversation.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
},
{
"cell_type": "code",
"execution_count": 1,
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
Expand All @@ -22,7 +22,7 @@
},
{
"cell_type": "code",
"execution_count": 2,
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
Expand All @@ -39,18 +39,23 @@
},
{
"cell_type": "code",
"execution_count": 3,
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{\n",
" \"role\": \"assistant\",\n",
" \"content\": \"The current UTC time and date is Wednesday, 17 April 2024, 13:13:27.\",\n",
" \"identifier\": \"691610408b1c4a4ab1aecdf78da128cb\",\n",
" \"role\": \"model\",\n",
" \"author\": null,\n",
" \"created\": \"2024-04-17T13:13:28.396044+00:00\"\n",
" \"created\": \"2024-05-23T07:46:42.001814+00:00\",\n",
" \"content\": {\n",
" \"elements\": [\n",
" \"The current UTC time and date is Thursday, 23 May 2024, 07:46:41.\"\n",
" ]\n",
" }\n",
"}\n"
]
}
Expand All @@ -64,14 +69,14 @@
" Toolbox,\n",
" conversation_completion,\n",
" ctx,\n",
" openai_lmm_completion,\n",
" openai_lmm_invocation,\n",
")\n",
"\n",
"# initialize dependencies and configuration\n",
"async with ctx.new(\n",
" dependencies=[OpenAIClient], # use OpenAI client\n",
" state=[\n",
" LMM(completion=openai_lmm_completion), # define used LMM\n",
" LMM(invocation=openai_lmm_invocation), # define used LMM\n",
" OpenAIChatConfig(model=\"gpt-3.5-turbo-0125\"), # configure OpenAI model\n",
" ],\n",
"):\n",
Expand Down
6 changes: 3 additions & 3 deletions examples/BasicModelGeneration.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -58,14 +58,14 @@
" OpenAIClient,\n",
" ctx,\n",
" generate_model,\n",
" openai_lmm_completion,\n",
" openai_lmm_invocation,\n",
")\n",
"\n",
"# initialize dependencies and configuration\n",
"async with ctx.new(\n",
" dependencies=[OpenAIClient], # use OpenAI client\n",
" state=[\n",
" LMM(completion=openai_lmm_completion), # define used LMM\n",
" LMM(invocation=openai_lmm_invocation), # define used LMM\n",
" OpenAIChatConfig(model=\"gpt-3.5-turbo-0125\"), # configure OpenAI model\n",
" ],\n",
"):\n",
Expand Down Expand Up @@ -98,7 +98,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.6"
"version": "3.12.2"
}
},
"nbformat": 4,
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"

[project]
name = "draive"
version = "0.11.0"
version = "0.13.0"
readme = "README.md"
maintainers = [
{name = "Kacper Kaliński", email = "[email protected]"}
Expand Down
92 changes: 49 additions & 43 deletions src/draive/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,9 @@
from draive.conversation import (
Conversation,
ConversationCompletion,
ConversationCompletionStream,
ConversationMessage,
ConversationMessageChunk,
ConversationResponseStream,
conversation_completion,
lmm_conversation_completion,
)
Expand All @@ -29,6 +30,7 @@
)
from draive.helpers import (
MISSING,
AsyncStream,
Missing,
freeze,
getenv_bool,
Expand All @@ -44,11 +46,13 @@
)
from draive.lmm import (
LMM,
LMMCompletion,
LMMCompletionStream,
LMMMessage,
LMMStreamingUpdate,
lmm_completion,
Tool,
Toolbox,
ToolCallContext,
ToolException,
ToolStatusStream,
lmm_invocation,
tool,
)
from draive.metrics import (
Metric,
Expand All @@ -64,7 +68,7 @@
MistralEmbeddingConfig,
MistralException,
mistral_embed_text,
mistral_lmm_completion,
mistral_lmm_invocation,
)
from draive.openai import (
OpenAIChatConfig,
Expand All @@ -74,7 +78,7 @@
OpenAIImageGenerationConfig,
openai_embed_text,
openai_generate_image,
openai_lmm_completion,
openai_lmm_invocation,
openai_tokenize_text,
)
from draive.parameters import Argument, Field, ParameterPath
Expand All @@ -84,47 +88,44 @@
ScopeState,
ctx,
)
from draive.similarity import mmr_similarity, similarity
from draive.similarity import mmr_similarity_search, similarity_score, similarity_search
from draive.splitters import split_text
from draive.tokenization import TextTokenizer, Tokenization, count_text_tokens, tokenize_text
from draive.tools import (
Tool,
Toolbox,
ToolCallContext,
ToolCallStatus,
ToolCallUpdate,
ToolException,
ToolsUpdatesContext,
tool,
)
from draive.types import (
AudioBase64Content,
AudioContent,
AudioDataContent,
AudioURLContent,
ImageBase64Content,
ImageContent,
ImageDataContent,
ImageURLContent,
Instruction,
LMMCompletion,
LMMCompletionChunk,
LMMContextElement,
LMMInput,
LMMInstruction,
LMMOutputStream,
LMMOutputStreamChunk,
LMMToolRequest,
LMMToolResponse,
Memory,
Model,
MultimodalContent,
ReadOnlyMemory,
State,
ToolCallStatus,
VideoBase64Content,
VideoContent,
VideoDataContent,
VideoURLContent,
has_media,
is_multimodal_content,
merge_multimodal_content,
multimodal_content_string,
)
from draive.utils import (
AsyncStream,
AsyncStreamTask,
allowing_early_exit,
auto_retry,
cache,
traced,
with_early_exit,
)

__all__ = [
Expand All @@ -134,14 +135,14 @@
"AgentFlow",
"AgentScratchpad",
"AgentState",
"allowing_early_exit",
"Argument",
"AsyncStream",
"AsyncStream",
"AsyncStreamTask",
"AsyncStreamTask",
"AudioBase64Content",
"AudioContent",
"AudioDataContent",
"AudioURLContent",
"auto_retry",
"BaseAgent",
Expand All @@ -151,7 +152,8 @@
"Conversation",
"Conversation",
"ConversationCompletion",
"ConversationCompletionStream",
"ConversationMessageChunk",
"ConversationResponseStream",
"ConversationMessage",
"count_text_tokens",
"ctx",
Expand All @@ -168,24 +170,28 @@
"getenv_float",
"getenv_int",
"getenv_str",
"has_media",
"ImageBase64Content",
"ImageContent",
"ImageDataContent",
"ImageGeneration",
"ImageGenerator",
"ImageURLContent",
"Instruction",
"is_missing",
"is_multimodal_content",
"lmm_completion",
"lmm_invocation",
"lmm_conversation_completion",
"LMM",
"LMMCompletion",
"LMMMessage",
"LMMCompletionStream",
"LMMStreamingUpdate",
"LMMCompletionChunk",
"LMMContextElement",
"LMMInput",
"LMMInstruction",
"LMMOutputStream",
"LMMOutputStreamChunk",
"LMMToolRequest",
"LMMToolResponse",
"load_env",
"Memory",
"merge_multimodal_content",
"Metric",
"metrics_log_reporter",
"MetricsTrace",
Expand All @@ -194,21 +200,20 @@
"Missing",
"MISSING",
"mistral_embed_text",
"mistral_lmm_completion",
"mistral_lmm_invocation",
"MistralChatConfig",
"MistralClient",
"MistralEmbeddingConfig",
"MistralException",
"mmr_similarity",
"mmr_similarity_search",
"Model",
"ModelGeneration",
"ModelGenerator",
"multimodal_content_string",
"MultimodalContent",
"not_missing",
"openai_embed_text",
"openai_generate_image",
"openai_lmm_completion",
"openai_lmm_invocation",
"openai_tokenize_text",
"OpenAIChatConfig",
"OpenAIClient",
Expand All @@ -221,7 +226,8 @@
"ScopeDependency",
"ScopeState",
"setup_logging",
"similarity",
"similarity_score",
"similarity_search",
"split_sequence",
"split_text",
"State",
Expand All @@ -237,14 +243,14 @@
"Toolbox",
"ToolCallContext",
"ToolCallStatus",
"ToolCallUpdate",
"ToolCallStatus",
"ToolException",
"ToolException",
"ToolsUpdatesContext",
"ToolStatusStream",
"traced",
"VideoBase64Content",
"VideoContent",
"VideoDataContent",
"VideoURLContent",
"when_missing",
"with_early_exit",
]
Loading

0 comments on commit 350e24e

Please sign in to comment.