Skip to content

Commit

Permalink
feat: Add support for additional OpenAI model configurations
Browse files Browse the repository at this point in the history
- Updated pyproject.toml to upgrade langchain-openai and langchain dependencies
- Modified LLMEndpoint to adjust temperature for specific models
- Added new OpenAI model configurations in LLMModelConfig:
  - o3-mini
  - o1-mini
  - o1-preview
  - o1
  • Loading branch information
StanGirard committed Jan 31, 2025
1 parent 8002393 commit d6991c5
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 13 deletions.
4 changes: 2 additions & 2 deletions core/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@ authors = [{ name = "Stan Girard", email = "[email protected]" }]
dependencies = [
"pydantic>=2.8.2",
"langchain-core>=0.3,<0.4",
"langchain>=0.3,<0.4",
"langchain>=0.3.9,<0.4",
"langgraph>=0.2.38,<0.3",
"httpx>=0.27.0",
"rich>=13.7.1",
"tiktoken>=0.7.0",
"aiofiles>=23.1.0",
"langchain-openai>=0.1.0",
"langchain-openai>=0.3.0",
"langchain-cohere>=0.1.0",
"langchain-community>=0.3,<0.4",
"langchain-anthropic>=0.1.23",
Expand Down
8 changes: 5 additions & 3 deletions core/quivr_core/llm/llm_endpoint.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
import logging
import os
import time
from typing import Union
from urllib.parse import parse_qs, urlparse

import tiktoken
from langchain_anthropic import ChatAnthropic
from langchain_mistralai import ChatMistralAI
from langchain_core.language_models.chat_models import BaseChatModel
from langchain_mistralai import ChatMistralAI
from langchain_openai import AzureChatOpenAI, ChatOpenAI
from pydantic import SecretStr
import time

from quivr_core.brain.info import LLMInfo
from quivr_core.rag.entities.config import DefaultModelSuppliers, LLMEndpointConfig
Expand Down Expand Up @@ -242,7 +242,9 @@ def from_config(cls, config: LLMEndpointConfig = LLMEndpointConfig()):
else None,
base_url=config.llm_base_url,
max_tokens=config.max_output_tokens,
temperature=config.temperature,
temperature=config.temperature
if config.model.startswith("o")
else 0,
)
elif config.supplier == DefaultModelSuppliers.MISTRAL:
_llm = ChatMistralAI(
Expand Down
36 changes: 28 additions & 8 deletions core/quivr_core/rag/entities/config.py
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
import logging
import os
import re
import logging
from enum import Enum
from typing import Dict, Hashable, List, Optional, Union, Any, Type
from typing import Any, Dict, Hashable, List, Optional, Type, Union
from uuid import UUID
from pydantic import BaseModel
from langgraph.graph import START, END
from langchain_core.tools import BaseTool
from quivr_core.config import MegaparseConfig
from rapidfuzz import process, fuzz

from langchain_core.tools import BaseTool
from langgraph.graph import END, START
from pydantic import BaseModel
from rapidfuzz import fuzz, process

from quivr_core.base_config import QuivrBaseConfig
from quivr_core.config import MegaparseConfig
from quivr_core.llm_tools.llm_tools import TOOLS_CATEGORIES, TOOLS_LISTS, LLMToolFactory
from quivr_core.processor.splitter import SplitterConfig
from quivr_core.rag.prompts import CustomPromptsModel
from quivr_core.llm_tools.llm_tools import LLMToolFactory, TOOLS_CATEGORIES, TOOLS_LISTS

logger = logging.getLogger("quivr_core")

Expand Down Expand Up @@ -93,6 +93,26 @@ class LLMModelConfig:
max_output_tokens=16384,
tokenizer_hub="Quivr/gpt-4o",
),
"o3-mini": LLMConfig(
max_context_tokens=200000,
max_output_tokens=100000,
tokenizer_hub="Quivr/gpt-4o",
),
"o1-mini": LLMConfig(
max_context_tokens=128000,
max_output_tokens=65536,
tokenizer_hub="Quivr/gpt-4o",
),
"o1-preview": LLMConfig(
max_context_tokens=128000,
max_output_tokens=32768,
tokenizer_hub="Quivr/gpt-4o",
),
"o1": LLMConfig(
max_context_tokens=200000,
max_output_tokens=100000,
tokenizer_hub="Quivr/gpt-4o",
),
"gpt-4-turbo": LLMConfig(
max_context_tokens=128000,
max_output_tokens=4096,
Expand Down

0 comments on commit d6991c5

Please sign in to comment.