Skip to content

Commit

Permalink
v1.6.0 (#1195)
Browse files Browse the repository at this point in the history
* v1.6.0

* add db to compose files

* Allow sqlite

* fix user creation

* add default user

* remove unused functions

* create default user if it doesn't exist

* add user id

* add logging for test

* add wait for server in test

* fix searxng search default

* lower username

* clean up

* change func name to webhook_create_user
  • Loading branch information
Josh-XT authored May 29, 2024
1 parent c19438f commit e28e548
Show file tree
Hide file tree
Showing 39 changed files with 1,143 additions and 1,380 deletions.
13 changes: 0 additions & 13 deletions .github/workflows/publish-docker-dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,28 +51,15 @@ jobs:
notebook: tests/tests.ipynb
image: ghcr.io/${{ needs.build-agixt.outputs.github_user }}/${{ needs.build-agixt.outputs.repo_name }}:${{ github.sha }}
port: "7437"
db-connected: false
report-name: "agixt-tests"
additional-python-dependencies: agixtsdk
needs: build-agixt
test-agixt-db:
uses: josh-xt/AGiXT/.github/workflows/operation-test-with-jupyter.yml@main
with:
notebook: tests/tests.ipynb
image: ghcr.io/${{ needs.build-agixt.outputs.github_user }}/${{ needs.build-agixt.outputs.repo_name }}:${{ github.sha }}
port: "7437"
db-connected: true
database-type: "postgresql"
report-name: "agixt-db-tests"
additional-python-dependencies: agixtsdk
needs: build-agixt
test-completions:
uses: josh-xt/AGiXT/.github/workflows/operation-test-with-jupyter.yml@main
with:
notebook: tests/completions-tests.ipynb
image: ghcr.io/${{ needs.build-agixt.outputs.github_user }}/${{ needs.build-agixt.outputs.repo_name }}:${{ github.sha }}
port: "7437"
db-connected: false
report-name: "completions-tests"
additional-python-dependencies: openai requests python-dotenv
needs: build-agixt
13 changes: 0 additions & 13 deletions .github/workflows/publish-docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,28 +31,15 @@ jobs:
notebook: tests/tests.ipynb
image: ${{ needs.build-agixt.outputs.primary-image }}
port: "7437"
db-connected: false
report-name: "agixt-tests"
additional-python-dependencies: agixtsdk
needs: build-agixt
test-agixt-db:
uses: josh-xt/AGiXT/.github/workflows/operation-test-with-jupyter.yml@main
with:
notebook: tests/tests.ipynb
image: ${{ needs.build-agixt.outputs.primary-image }}
port: "7437"
db-connected: true
database-type: "postgresql"
report-name: "agixt-db-tests"
additional-python-dependencies: agixtsdk
needs: build-agixt
test-completions:
uses: josh-xt/AGiXT/.github/workflows/operation-test-with-jupyter.yml@main
with:
notebook: tests/completions-tests.ipynb
image: ${{ needs.build-agixt.outputs.primary-image }}
port: "7437"
db-connected: false
report-name: "completions-tests"
additional-python-dependencies: openai requests python-dotenv
needs: build-agixt
2 changes: 1 addition & 1 deletion agixt/AGiXT.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from Extensions import Extensions
from Chains import Chains
from pydub import AudioSegment
from Defaults import getenv, get_tokens, DEFAULT_SETTINGS
from Globals import getenv, get_tokens, DEFAULT_SETTINGS
from Models import ChatCompletions
import os
import base64
Expand Down
15 changes: 10 additions & 5 deletions agixt/db/Agent.py → agixt/Agent.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from DBConnection import (
from DB import (
Agent as AgentModel,
AgentSetting as AgentSettingModel,
AgentBrowsedLink,
Expand All @@ -15,7 +15,7 @@
)
from Providers import Providers
from Extensions import Extensions
from Defaults import getenv, DEFAULT_SETTINGS, DEFAULT_USER
from Globals import getenv, DEFAULT_SETTINGS, DEFAULT_USER
from datetime import datetime, timezone, timedelta
import logging
import json
Expand Down Expand Up @@ -169,9 +169,14 @@ class Agent:
def __init__(self, agent_name=None, user=DEFAULT_USER, ApiClient=None):
self.agent_name = agent_name if agent_name is not None else "AGiXT"
self.session = get_session()
self.user = user
user_data = self.session.query(User).filter(User.email == self.user).first()
self.user_id = user_data.id
user = user if user is not None else DEFAULT_USER
self.user = user.lower()
try:
user_data = self.session.query(User).filter(User.email == self.user).first()
self.user_id = user_data.id
except Exception as e:
logging.error(f"User {self.user} not found.")
raise
self.AGENT_CONFIG = self.get_agent_config()
self.load_config_keys()
if "settings" not in self.AGENT_CONFIG:
Expand Down
34 changes: 10 additions & 24 deletions agixt/ApiClient.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,30 +2,21 @@
import jwt
from agixtsdk import AGiXTSDK
from fastapi import Header, HTTPException
from Defaults import getenv
from Globals import getenv
from datetime import datetime

logging.basicConfig(
level=getenv("LOG_LEVEL"),
format=getenv("LOG_FORMAT"),
)
DB_CONNECTED = True if getenv("DB_CONNECTED").lower() == "true" else False
WORKERS = int(getenv("UVICORN_WORKERS"))
AGIXT_URI = getenv("AGIXT_URI")

# Defining these here to be referenced externally.
if DB_CONNECTED:
from db.Agent import Agent, add_agent, delete_agent, rename_agent, get_agents
from db.Chain import Chain
from db.Prompts import Prompts
from db.Conversations import Conversations
from db.User import User
else:
from fb.Agent import Agent, add_agent, delete_agent, rename_agent, get_agents
from fb.Chain import Chain
from fb.Prompts import Prompts
from fb.Conversations import Conversations
from Models import User_fb as User
from Agent import Agent, add_agent, delete_agent, rename_agent, get_agents
from Chain import Chain
from Prompts import Prompts
from Conversations import Conversations


def verify_api_key(authorization: str = Header(None)):
Expand All @@ -34,7 +25,7 @@ def verify_api_key(authorization: str = Header(None)):
DEFAULT_USER = getenv("DEFAULT_USER")
authorization = str(authorization).replace("Bearer ", "").replace("bearer ", "")
if DEFAULT_USER == "" or DEFAULT_USER is None or DEFAULT_USER == "None":
DEFAULT_USER = "USER"
DEFAULT_USER = "user"
if getenv("AUTH_PROVIDER") == "magicalauth":
auth_key = AGIXT_API_KEY + str(datetime.now().strftime("%Y%m%d"))
try:
Expand Down Expand Up @@ -88,20 +79,15 @@ def is_admin(email: str = "USER", api_key: str = None):
return True
# Commenting out functionality until testing is complete.
AGIXT_API_KEY = getenv("AGIXT_API_KEY")
DB_CONNECTED = True if getenv("DB_CONNECTED").lower() == "true" else False
if DB_CONNECTED != True:
return True
if api_key is None:
api_key = ""
api_key = api_key.replace("Bearer ", "").replace("bearer ", "")
if AGIXT_API_KEY == api_key:
return True
if DB_CONNECTED == True:
from db.User import is_agixt_admin

if email == "" or email is None or email == "None":
email = getenv("DEFAULT_USER")
if email == "" or email is None or email == "None":
email = getenv("DEFAULT_USER")
if email == "" or email is None or email == "None":
email = "USER"
return is_agixt_admin(email=email, api_key=api_key)
email = "USER"
return is_agixt_admin(email=email, api_key=api_key)
return False
4 changes: 2 additions & 2 deletions agixt/db/Chain.py → agixt/Chain.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from DBConnection import (
from DB import (
get_session,
Chain as ChainDB,
ChainStep,
Expand All @@ -10,7 +10,7 @@
Command,
User,
)
from Defaults import getenv, DEFAULT_USER
from Globals import getenv, DEFAULT_USER
import logging

logging.basicConfig(
Expand Down
2 changes: 1 addition & 1 deletion agixt/Chains.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import logging
from Defaults import getenv
from Globals import getenv
from ApiClient import Chain, Prompts, Conversations
from Extensions import Extensions

Expand Down
4 changes: 2 additions & 2 deletions agixt/db/Conversations.py → agixt/Conversations.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
from datetime import datetime
import logging
from DBConnection import (
from DB import (
Conversation,
Message,
User,
get_session,
)
from Defaults import getenv, DEFAULT_USER
from Globals import getenv, DEFAULT_USER

logging.basicConfig(
level=getenv("LOG_LEVEL"),
Expand Down
Loading

0 comments on commit e28e548

Please sign in to comment.