From aaa7831ab123c8b659bd2baf0bb5c70c268fc20e Mon Sep 17 00:00:00 2001 From: LUIS NOVO Date: Sat, 26 Oct 2024 05:41:06 -0300 Subject: [PATCH 1/3] add gemini support --- open_notebook/llm_router.py | 2 ++ open_notebook/llms.py | 25 ++++++++++++++++++++++++- poetry.lock | 2 +- pyproject.toml | 1 + 4 files changed, 28 insertions(+), 2 deletions(-) diff --git a/open_notebook/llm_router.py b/open_notebook/llm_router.py index 9fdb85d..9e1096e 100644 --- a/open_notebook/llm_router.py +++ b/open_notebook/llm_router.py @@ -1,5 +1,6 @@ from open_notebook.llms import ( AnthropicLanguageModel, + GeminiLanguageModel, LiteLLMLanguageModel, OllamaLanguageModel, OpenAILanguageModel, @@ -17,6 +18,7 @@ PROVIDER_CLASS_MAP = { "vertexai": VertexAILanguageModel, "anthropic": AnthropicLanguageModel, "openai": OpenAILanguageModel, + "gemini": GeminiLanguageModel, } diff --git a/open_notebook/llms.py b/open_notebook/llms.py index c6357d1..efcc431 100644 --- a/open_notebook/llms.py +++ b/open_notebook/llms.py @@ -10,6 +10,7 @@ from typing import Any, Dict, Optional from langchain_anthropic import ChatAnthropic from langchain_community.chat_models import ChatLiteLLM from langchain_core.language_models.chat_models import BaseChatModel +from langchain_google_genai import ChatGoogleGenerativeAI from langchain_google_vertexai import ChatVertexAI from langchain_google_vertexai.model_garden import ChatAnthropicVertex from langchain_ollama.chat_models import ChatOllama @@ -62,7 +63,7 @@ class OllamaLanguageModel(LanguageModel): base_url=self.base_url, # keep_alive="10m", num_predict=self.max_tokens, - temperature=self.temperature, + temperature=self.temperature or 0.5, verbose=True, top_p=self.top_p, ) @@ -90,6 +91,7 @@ class VertexAnthropicLanguageModel(LanguageModel): streaming=False, kwargs=self.kwargs, top_p=self.top_p, + temperature=self.temperature or 0.5, ) @@ -136,6 +138,26 @@ class VertexAILanguageModel(LanguageModel): location=self.location, project=self.project, safety_settings=None, + temperature=self.temperature or 0.5, + ) + + +@dataclass +class GeminiLanguageModel(LanguageModel): + """ + Language model that uses the Gemini Family of chat models. + """ + + model_name: str + + def to_langchain(self) -> ChatGoogleGenerativeAI: + """ + Convert the language model to a LangChain chat model. + """ + return ChatGoogleGenerativeAI( + model=self.model_name, + max_tokens=self.max_tokens, + temperature=self.temperature or 0.5, ) @@ -188,6 +210,7 @@ class AnthropicLanguageModel(LanguageModel): streaming=False, timeout=30, top_p=self.top_p, + temperature=self.temperature or 0.5, ) diff --git a/poetry.lock b/poetry.lock index bf9b147..590313e 100644 --- a/poetry.lock +++ b/poetry.lock @@ -6063,4 +6063,4 @@ type = ["pytest-mypy"] [metadata] lock-version = "2.0" python-versions = "^3.11" -content-hash = "b92bbd2ce61e78ccc2e182627cf0ba5d98ccf849898e5e941d5d17e74a7827ab" +content-hash = "5f7bdea405c6c6433fa805b3321ac1550e13deee0d3a3c04e38136cd6992f5b1" diff --git a/pyproject.toml b/pyproject.toml index 3d30ed6..507708d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -39,6 +39,7 @@ langchain-anthropic = "^0.2.3" langchain-ollama = "^0.2.0" langchain-google-vertexai = "^2.0.5" sdblpy = "^0.3.0" +langchain-google-genai = "^2.0.1" podcastfy = "^0.2.8" [tool.poetry.group.dev.dependencies] From 74f3e759ee9e3a08aa9a441b0b600aded5e03367 Mon Sep 17 00:00:00 2001 From: LUIS NOVO Date: Sat, 26 Oct 2024 05:51:19 -0300 Subject: [PATCH 2/3] add english as main default transcript language --- open_notebook/graphs/content_process.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/open_notebook/graphs/content_process.py b/open_notebook/graphs/content_process.py index 653d9c6..46b9fbc 100644 --- a/open_notebook/graphs/content_process.py +++ b/open_notebook/graphs/content_process.py @@ -274,7 +274,7 @@ def extract_youtube_transcript(state: SourceState): """ languages = CONFIG.get("youtube_transcripts", {}).get( - "preferred_languages", ["pt", "en"] + "preferred_languages", ["en", "es", "pt"] ) video_id = _extract_youtube_id(state.get("url")) From 88b39339cb2299dcef231c8fda0aed22b6db9c15 Mon Sep 17 00:00:00 2001 From: LUIS NOVO Date: Sat, 26 Oct 2024 05:52:58 -0300 Subject: [PATCH 3/3] update readme for gemini --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 907a7d7..35f6cc2 100644 --- a/README.md +++ b/README.md @@ -58,6 +58,7 @@ Go to the [Usage](docs/USAGE.md) page to learn how to use all features. - **Integrated Search Engines**: Built-in full-text and vector search for faster information retrieval. - **Fine-Grained Context Management**: Choose exactly what to share with the AI to maintain control. - **Podcast Generator**: Automatically convert your notes into a podcast format. +- **Multi-model support**: Open AI, Anthropic, Gemini, Vertex AI, Open Router, Ollama. ## 🚀 New Features