reorganize folder structure

This commit is contained in:
Pierre Wessman 2025-01-21 09:11:18 +00:00
parent 2aaeff8259
commit c188497731
41 changed files with 97 additions and 55 deletions

View File

@ -1,32 +0,0 @@
import logging
from pgvector.psycopg2 import register_vector
import psycopg2
class Database:
def __init__(
self,
database,
user="postgres",
password="postgres",
host="localhost",
port="5433",
) -> None:
logging.info("Connecting to database")
self.conn = psycopg2.connect(
database="rag",
user="postgres",
password="postgres",
host="localhost",
port="5433",
)
register_vector(self.conn)
self.cur = self.conn.cursor()
self.cur.execute("SELECT version();")
logging.info(" DB Version: %s", self.cur.fetchone()[0])
logging.info(" psycopg2 Version: %s", psycopg2.__version__)
def close(self):
logging.info("Closing connection to database")
self.cur.close()
self.conn.close()

View File

@ -1,15 +0,0 @@
version: '3.8'
services:
db:
image: pgvector/pgvector:pg16
restart: always
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
ports:
- '5433:5432'
volumes:
- db:/var/lib/postgresql/data
volumes:
db:
driver: local

13
agent/Dockerfile Normal file
View File

@ -0,0 +1,13 @@
FROM python:3.11-slim
WORKDIR /app
COPY src/requirements.txt /app/
RUN pip install --no-cache-dir -r requirements.txt
COPY src/ /app/
RUN find /app/plugins -name "requirements.txt" -exec sh -c 'pip install --no-cache-dir -r "{}"' \;
EXPOSE 8000
CMD ["uvicorn", "backend:app", "--host", "0.0.0.0", "--port", "8000"]

30
agent/docker-compose.yml Normal file
View File

@ -0,0 +1,30 @@
version: '3.7'
services:
voice-assistant:
container_name: voice-assistant
build:
context: .
dockerfile: Dockerfile
restart: unless-stopped
ports:
- "8000:8000"
networks:
smart_home:
ipv4_address: 172.21.0.30
# db:
# image: pgvector/pgvector:pg16
# restart: always
# environment:
# - POSTGRES_USER=postgres
# - POSTGRES_PASSWORD=postgres
# ports:
# - '5433:5432'
# volumes:
# - db:/var/lib/postgresql/data
volumes:
db:
driver: local
networks:
smart_home:
external:
name: smart_home

35
agent/src/db.py Normal file
View File

@ -0,0 +1,35 @@
import logging
from pgvector.psycopg2 import register_vector
import psycopg2
class Database:
def __init__(
self,
database,
user="postgres",
password="postgres",
host="localhost",
port="5433",
) -> None:
logging.info("Connecting to database")
try:
self.conn = psycopg2.connect(
database="rag",
user="postgres",
password="postgres",
host="localhost",
port="5433",
)
register_vector(self.conn)
self.cur = self.conn.cursor()
self.cur.execute("SELECT version();")
logging.info(" DB Version: %s", self.cur.fetchone()[0])
logging.info(" psycopg2 Version: %s", psycopg2.__version__)
except:
logging.error("Could not connect to database.")
def close(self):
logging.info("Closing connection to database")
self.cur.close()
self.conn.close()

View File

@ -1,12 +1,17 @@
import concurrent.futures
import json
from llama_cpp.llama import Llama
import logging
import numpy as np
from openai import OpenAI
from sentence_transformers import SentenceTransformer, CrossEncoder
from typing import Union, List
try:
from llama_cpp.llama import Llama
from sentence_transformers import SentenceTransformer, CrossEncoder
except ImportError as e:
print("Faield to import packages:")
print(e)
class BaseChat:
def __init__(self, config: dict) -> None:
@ -39,7 +44,7 @@ class OpenAIChat(BaseChat):
base_url = self.config["openai"]["base_url"]
else:
base_url = None
self.client = OpenAI(base_url=base_url)
self.client = OpenAI(base_url=base_url, api_key=self.config["openai"]["api_key"])
def chat(self, messages, tools) -> str:
function_map, functions = self.prepare_function_calling(tools)
@ -180,7 +185,7 @@ class LLM:
else:
self.embedding_model = self.config["openai"]["embedding_model"]
self.rerank_model = None
self.embedding_client = OpenAI()
self.embedding_client = OpenAI(api_key=self.config["openai"]["api_key"])
def query(
self,

View File

@ -17,7 +17,12 @@ class Plugin(BasePlugin):
super().__init__(config=config)
self.spotify = spotipy.Spotify(
auth_manager=SpotifyOAuth(scope="user-library-read", redirect_uri="http://localhost:8080")
auth_manager=SpotifyOAuth(
scope="user-library-read",
redirect_uri="http://localhost:8080",
client_id=self.config["plugins"]["music"]["spotify_client_id"],
client_secret=self.config["plugins"]["music"]["spotify_client_secret"]
)
)
def _search(self, query: str, limit: int = 10):

View File

@ -0,0 +1 @@
spotipy

View File

@ -1,11 +1,11 @@
fastapi
uvicorn[standard]
openai>=1.11.1
sentence_transformers
#sentence_transformers
dateparser
pgvector
psycopg2
psycopg2-binary
pyyaml
gradio
hass-client>=1.0.1
llama_cpp_python>=0.2.44
#llama_cpp_python>=0.2.44