Merge pull request #195 from learnhouse/feat/collaboration-server

Init Collaborative Edition
This commit is contained in:
Badr B 2024-04-07 18:14:31 +02:00 committed by GitHub
commit 28c7def56a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
25 changed files with 5882 additions and 14273 deletions

View file

@ -18,11 +18,9 @@ class AIEnabledFeatures(BaseModel):
class AIConfig(BaseModel):
enabled : bool = True
enabled: bool = True
limits: AILimitsSettings = AILimitsSettings()
embeddings: Literal[
"text-embedding-ada-002",
] = "text-embedding-ada-002"
embeddings: Literal["text-embedding-ada-002",] = "text-embedding-ada-002"
ai_model: Literal["gpt-3.5-turbo", "gpt-4-1106-preview"] = "gpt-3.5-turbo"
features: AIEnabledFeatures = AIEnabledFeatures()
@ -44,13 +42,15 @@ class GeneralConfig(BaseModel):
color: str = ""
limits: LimitSettings = LimitSettings()
users: OrgUserConfig = OrgUserConfig()
collaboration: bool = False
active: bool = True
class OrganizationConfigBase(SQLModel):
GeneralConfig: GeneralConfig
AIConfig: AIConfig
class OrganizationConfig(SQLModel, table=True):
id: Optional[int] = Field(default=None, primary_key=True)
org_id: int = Field(
@ -60,7 +60,3 @@ class OrganizationConfig(SQLModel, table=True):
config: dict = Field(default={}, sa_column=Column(JSON))
creation_date: Optional[str]
update_date: Optional[str]

View file

@ -80,7 +80,7 @@ async def get_image_block(
if block:
block = BlockRead.model_validate(block)
block = BlockRead.from_orm(block)
return block
else:

View file

@ -1,14 +1,16 @@
from datetime import datetime
import json
from uuid import uuid4
from fastapi import HTTPException, Request
from sqlalchemy import desc
from sqlmodel import Session, select
from src.db.install import Install, InstallRead
from src.db.organization_config import AIEnabledFeatures, AILimitsSettings, LimitSettings, OrgUserConfig, OrganizationConfig, OrganizationConfigBase, GeneralConfig, AIConfig
from src.db.organizations import Organization, OrganizationCreate
from src.db.roles import Permission, Rights, Role, RoleTypeEnum
from src.db.user_organizations import UserOrganization
from src.db.users import User, UserCreate, UserRead
from config.config import get_learnhouse_config
from config.config import get_learnhouse_config
from src.security.security import security_hash_password
@ -312,6 +314,53 @@ async def install_create_organization(
db_session.commit()
db_session.refresh(org)
# Org Config
org_config = OrganizationConfigBase(
GeneralConfig=GeneralConfig(
color="#000000",
limits=LimitSettings(
limits_enabled=False,
max_users=0,
max_storage=0,
max_staff=0,
),
collaboration=False,
users=OrgUserConfig(
signup_mechanism="open",
),
active=True,
),
AIConfig=AIConfig(
enabled=True,
limits=AILimitsSettings(
limits_enabled=False,
max_asks=0,
),
embeddings="text-embedding-ada-002",
ai_model="gpt-3.5-turbo",
features=AIEnabledFeatures(
editor=True,
activity_ask=True,
course_ask=True,
global_ai_ask=True,
),
),
)
org_config = json.loads(org_config.json())
# OrgSettings
org_settings = OrganizationConfig(
org_id=int(org.id if org.id else 0),
config=org_config,
creation_date=str(datetime.now()),
update_date=str(datetime.now()),
)
db_session.add(org_settings)
db_session.commit()
db_session.refresh(org_settings)
return org

View file

@ -158,6 +158,7 @@ async def create_org(
max_storage=0,
max_staff=0,
),
collaboration=False,
users=OrgUserConfig(
signup_mechanism="open",
),