[Add] browser-use and main.py
This commit is contained in:
parent
08e64bdf45
commit
96914d44ac
221 changed files with 30952 additions and 1 deletions
67
browser-use/browser_use/agent/memory/views.py
Normal file
67
browser-use/browser_use/agent/memory/views.py
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
from typing import Any, Literal
|
||||
|
||||
from langchain_core.language_models.chat_models import BaseChatModel
|
||||
from pydantic import BaseModel, ConfigDict, Field
|
||||
|
||||
|
||||
class MemoryConfig(BaseModel):
|
||||
"""Configuration for procedural memory."""
|
||||
|
||||
model_config = ConfigDict(
|
||||
from_attributes=True, validate_default=True, revalidate_instances='always', validate_assignment=True
|
||||
)
|
||||
|
||||
# Memory settings
|
||||
agent_id: str = Field(default='browser_use_agent', min_length=1)
|
||||
memory_interval: int = Field(default=10, gt=1, lt=100)
|
||||
|
||||
# Embedder settings
|
||||
embedder_provider: Literal['openai', 'gemini', 'ollama', 'huggingface'] = 'huggingface'
|
||||
embedder_model: str = Field(min_length=2, default='all-MiniLM-L6-v2')
|
||||
embedder_dims: int = Field(default=384, gt=10, lt=10000)
|
||||
|
||||
# LLM settings - the LLM instance can be passed separately
|
||||
llm_provider: Literal['langchain'] = 'langchain'
|
||||
llm_instance: BaseChatModel | None = None
|
||||
|
||||
# Vector store settings
|
||||
vector_store_provider: Literal['faiss'] = 'faiss'
|
||||
vector_store_base_path: str = Field(default='/tmp/mem0')
|
||||
|
||||
@property
|
||||
def vector_store_path(self) -> str:
|
||||
"""Returns the full vector store path for the current configuration. e.g. /tmp/mem0_384_faiss"""
|
||||
return f'{self.vector_store_base_path}_{self.embedder_dims}_{self.vector_store_provider}'
|
||||
|
||||
@property
|
||||
def embedder_config_dict(self) -> dict[str, Any]:
|
||||
"""Returns the embedder configuration dictionary."""
|
||||
return {
|
||||
'provider': self.embedder_provider,
|
||||
'config': {'model': self.embedder_model, 'embedding_dims': self.embedder_dims},
|
||||
}
|
||||
|
||||
@property
|
||||
def llm_config_dict(self) -> dict[str, Any]:
|
||||
"""Returns the LLM configuration dictionary."""
|
||||
return {'provider': self.llm_provider, 'config': {'model': self.llm_instance}}
|
||||
|
||||
@property
|
||||
def vector_store_config_dict(self) -> dict[str, Any]:
|
||||
"""Returns the vector store configuration dictionary."""
|
||||
return {
|
||||
'provider': self.vector_store_provider,
|
||||
'config': {
|
||||
'embedding_model_dims': self.embedder_dims,
|
||||
'path': self.vector_store_path,
|
||||
},
|
||||
}
|
||||
|
||||
@property
|
||||
def full_config_dict(self) -> dict[str, dict[str, Any]]:
|
||||
"""Returns the complete configuration dictionary for Mem0."""
|
||||
return {
|
||||
'embedder': self.embedder_config_dict,
|
||||
'llm': self.llm_config_dict,
|
||||
'vector_store': self.vector_store_config_dict,
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue