Documentation

Change Log

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning .

0.12.0 (2025-06-02)

Major Features

  • Secrets . A new object type for securely managing sensitive data like passwords, api keys and credentials. Works like a Kubernetes secret, where the secret is encrypted using a common key that enables you to drecrypt it real-time, as needed.
  • ApiPlugin + ApiConnection . A new Smarter Plugin class that enables user defined, strongly typed, real time data retrieval from remote Api's during LLM prompting via both function calling and traditional single-pass RAG.
  • SqlPlugin + SqlConnection . Ditto, but for remote Sql databases.

Refactoring

  • AccountMixin + SmarterRequestMixin . We created two new mixins that consolidate handling logic for working with http requests and for account resources like Users and UserProfiles. We retired thousands of lines of redundant code and achieved a 10x performance improvement on api request initializations. This obviously affords us considerable improvement to reliability. high caching levels.

  • Name-spaced url schemes for reverse urls , so that name spaces now match the actual Python module organizational scheme. For example, {% url 'api:apply' %} is now {% url 'api:v1:cli:apply' %} , which matches the Python path, smarter.apps.api.v1.cli .

  • Django signals . Fully migrated to event-driven Django signals to pave the way towards our vision for a more pluggable, extensible platform architecture.
  • Standardized Casing . Standardized transformations between Pydantic models and Django ORM. Pydantic fields are now strictly camelCase, while DjangoORM continues to enforce strict snake_case. This greatly simplifies implementation logic in Smarter Broker classes and enabled us to remove copious amounts of transformation logic from legacy Brokers.
  • Testing . The entire unit test bank has been completely refactored to use a new family of Classes that provide more consistent setup and teardown of unit tests.

Performance & reliability

  • Testing Coverages . Our testing coverage ratio is back to par, with 300+ new unit tests added to the legacy code base.
  • Enumerations . More enumerations throughout the codebase enable more consistent and coherent cli error messagages.
  • Caching . Caching is now tightly coupled to AccountMixin and SmarterRequestMixin and has been extensively refactored to cover more edge cases.
  • Logging . Improved logging, mostly as a result of new Django signals that we've added to all Django apps.

Features

  • add business rule validations to PluginDataApi ( 9c71f44 )
  • add more granular error reporting to smarter.apps.api.v1.cli.views.base.CliBaseApiView ( 8f1efaf )
  • add new manifest kinds to PluginController ( bc50bfe )
  • add pre and post signals for all chatbot tasks ( eb78824 )
  • add pydantic models for parameters and testValues ( cc10324 )
  • add signals to ApiConnection ( 480cc31 )
  • add signals to get_current_weather() ( 910313c )
  • add smarter.apps.api.receivers.api_request_completed ( 779668d )
  • add smarter.apps.api.receivers.api_request_initiated ( 1c25c89 )
  • build Pydantic models for urlparams and http request headers ( 882034c )
  • code connection models ( d45f428 )
  • code Connection view and template ( 84b1688 )
  • code SAMApiConnectionBroker and SAMSqlConnectionBroker ( 7d047f2 )
  • create django admin models and manifest model for api_connection ( 8fa0a69 )
  • create manifest models for PluginDataApi and PluginDataSql ( cdb117c )
  • create PluginApi ( fd8aa1b )
  • create SmarterCamelCaseSerializer for transforming django orm fields to SAM camelCase labels ( 8e576c7 )
  • create static api end points to use for unit tests ( 2d62f3e )
  • implement Connection and Plugin list views ( 135742b )
  • implement SAMApiPluginBroker, SAMSqlPluginBroker, SAMApiConnectionBroker, SAMSqlConnectionBroker ( 353aa72 )
  • scaffold ApiPlugin and SqlPlugin ( 7ad3146 )
  • scaffold Connection and Plugin views ( 4697291 )
  • scaffold PluginDataApi ( 3e87099 )
  • scaffold SAMApiConnectionBroker ( 2cd5e01 )
  • standardize all resource names originating from metadata.name to snake_case ( 939a0a4 )
  • update manifest for new orm fields ( 58ef7c6 )
  • use Pydantic to validate example_manifest(), get() and describe() ( 365d3ff )

Bug Fixes

  • add cache invalidations for all functions decorated with @cache _results ( 284f2c0 )
  • add logic to read url from PreparedRequest object ( c4bae94 )
  • add missing url path / /config/ ( 0c9d2f1 )
  • amnesty for /admin/ urls ( 4ac6596 )
  • anyone from the same account can edit ( ab72c99 )
  • broken create_charge() handler ( fadcb8e )
  • broker initialization and token authentication bugs ( ca1b488 )
  • chatbot deployment logic ( f038e62 )
  • ChatBot.sandbox_host should return a domain, not a url ( 73e1ba6 )
  • ChatBotHelper().api_host ( e3b2f25 )
  • correct KIND ( a3c5643 )
  • create a non-camel case serializer for ChatConfigView ( 51a6a35 )
  • index created_at and updated_at ( 0beb107 )
  • initialization logic of AccountMixin ( 5aa92c9 )
  • is_token_auth() should compare str to str ( 1ba2c3a )
  • mixin initialization problems with DRF view classes ( 2941a6e )
  • move csrf_exempt decorator from class definitions to dispatch() ( 80bced8 )
  • NO RECURSION PLEASE ( 76df40a )
  • null values that break openai api-compatible providers like MetaAI and GoogleAi ( cd3847d )
  • plugin_selector_history is a QuerySet ( 4486180 )
  • propagate session_key to other classes that we instantiate ( 401222c )
  • receiver parameters ( 19ec9a2 )
  • setup a common url end point amnesty list ( 3bab974 )
  • str() should return * followed by last 4 characters of digest ( a514196 )
  • type check what we believe to be a HttpRequest object ( cf375e4 )
  • when possible, override account based on account number in named url ( 44da6ff )

0.11.0 (2025-04-27)

Bug Fixes

  • cache misses due to AnonymousUser ( 80de0e2 )
  • cache the base context ( a153da9 )
  • cache_results() decorator wasn't finding valid cached items ( fc43a1b )
  • cronic cache misses ( 23d039d )
  • fixup hashkey so that it's still readable ( 499bdf5 )
  • json schema should not require status field ( 6868f5c )
  • work on dispatch() life cycle execution thread ( 0761c57 )

Features

  • add console UI components for Secrets ( ccf78d8 )
  • add data entry form for new secret ( 4797e25 )
  • add django admin form for Secret and created dedicated FERNET_ENCRYPTION_KEY ( 65c127f )
  • add Fernet encryption key to CI-CD workflows and Helm chart ( 19a7686 )
  • add Secret unit tests ( b88af41 )
  • configure action buttons for data entry form ( c7bb2a0 )
  • configure data entry form ( f5c02ae )
  • create account.Secrets model ( d0e0e00 )
  • scaffold dashboard UI widgets ( 6583ec4 )
  • scaffold Secret broker and model ( f9e2850 )
  • scaffold Secret broker and model ( d3904a4 )

0.11.0 (2025-04-27)

Bug Fixes

  • cache misses due to AnonymousUser ( 80de0e2 )
  • cache the base context ( a153da9 )
  • cache_results() decorator wasn't finding valid cached items ( fc43a1b )
  • cronic cache misses ( 23d039d )
  • fixup hashkey so that it's still readable ( 499bdf5 )
  • json schema should not require status field ( 6868f5c )
  • work on dispatch() life cycle execution thread ( 0761c57 )

Features

  • add console UI components for Secrets ( ccf78d8 )
  • add data entry form for new secret ( 4797e25 )
  • add django admin form for Secret and created dedicated FERNET_ENCRYPTION_KEY ( 65c127f )
  • add Fernet encryption key to CI-CD workflows and Helm chart ( 19a7686 )
  • add Secret unit tests ( b88af41 )
  • configure action buttons for data entry form ( c7bb2a0 )
  • configure data entry form ( f5c02ae )
  • create account.Secrets model ( d0e0e00 )
  • scaffold dashboard UI widgets ( 6583ec4 )
  • scaffold Secret broker and model ( f9e2850 )
  • scaffold Secret broker and model ( d3904a4 )

0.10.23 (2025-04-11)

Bug Fixes

  • allow internal ip address to pass ( a5b4c09 )
  • authenticate the request ( cf44aa4 )
  • broken import for BlockSensitiveFilesMiddleware ( eca10cf )
  • broken import for BlockSensitiveFilesMiddleware ( 57f226f )
  • chatbot_id and chatbot_name are removed ( 1d8ada5 )
  • chatbot_id was removed ( 93feac2 )
  • chatbot_name was removed ( 730a944 )
  • config view does not require an input prompt ( 6e1ca0e )
  • don't import HTTPStatus ( 1308526 )
  • handle case where user is not an instance of User ( 1f070a3 )
  • handle case where user is not an instance of User ( 03e593d )
  • reposition .kube to /home/smarter_user/data/.kube ( d92fb41 )
  • smarter is the default account ( 123f17f )
  • smarter is the default account ( 00f9a64 )

0.10.22 (2025-04-08)

Bug Fixes

0.10.21 (2025-04-02)

Bug Fixes

  • convert welcome_dict to a tuple so that it is iterable ( 9c58011 )

0.10.20 (2025-03-28)

Bug Fixes

  • snuff out insert attempt to Chat when there is no session_key ( b2eae13 )

0.10.19 (2025-03-28)

Bug Fixes

  • add a SmarterConfigurationError to the stack trace ( 19143d3 )
  • avoid unnecessarily attempting to create a new chat session unless we have a session_key ( 1a4e86d )
  • only log and send django signal if we know that this is a chatbot. ( 3478390 )
  • wait 10 seconds before attempting health check ( 1c647f8 )

0.10.18 (2025-03-21)

Bug Fixes

  • csrf exceptions for chatbots ( 5a47e77 )
  • pass request object to ChatBotHelper ( 62af264 )

0.10.17 (2025-03-21)

Bug Fixes

0.10.16 (2025-03-19)

Bug Fixes

  • bug fix where environment url was initializing as a chatbot ( 51273a8 )
  • csrf exempt ApiV1CliChatApiView and ApiV1CliChatConfigApiView ( cb812f1 )
  • if there's no chatbot then return None ( 31724a4 )
  • remove authentication requirement ( 6cff04e )
  • request object sometimes is not set. use self.url ( 5e981f4 )

0.10.15 (2025-03-18)

Bug Fixes

  • environment api domain is hosted from root domain ( fd4f930 )
  • parent domain should be root domain ( f54fb14 )
  • wrap the entire load process in a try block ( 7509b7b )

0.10.14 (2025-03-17)

Bug Fixes

  • Add chatbot deploy, undeploy and delete signals and receivers. Add KubernetesHelper functions to delete ingress resources. Refactor chatbot task logging ( 3c4a7db )
  • add ChatBot.tls_certificate_issuance_status ( e771c22 )
  • add ChatBot.tls_certificate_issuance_status ( 39bf944 )
  • add mysql root credentials ( 08db79c )
  • add verifications for ingress, certificate, secret ( 07b655d )
  • CSRF_TRUSTED_ORIGINS = [smarter_settings.environment_domain, smarter_settings.api_domain, smarter_settings.customer_api_domain] ( 31541b0 )
  • don't wait if the tls cert is already verified ( bc997ec )
  • enable the dismiss button on the password reset confirmation modal ( 3ac954b )
  • environment_api_domain should reside inside platform domain ( 7ce6a8e )
  • exempt known benign file extensions ( dfaf2b5 )
  • explicitly initialize AccountMixin() in init () ( 46da800 )
  • namespace ( e5e4d8a )
  • only send deployment emails to primary point of contact for account ( d5ceba7 )
  • only wait if the tls cert is not yet verified ( 99a9b2e )
  • override call () ( 5d7b115 )
  • override call () ( 4691899 )
  • split user creation from password update ( 72a0b4e )
  • user is not longer 1:1 with user_profile ( 862fa85 )
  • user is not longer 1:1 with user_profile ( ba145f0 )

0.10.13 (2025-02-14)

Bug Fixes

0.10.12 (2025-02-14)

Bug Fixes

  • add a logged in receiver to verify UserProfile for authenticated user ( fb35a97 )
  • set SOCIAL_AUTH_LINKEDIN_OAUTH2_SCOPE ( 563bc8e )
  • stop echoing the new pwd to the console ( d1836ee )
  • whoami, status, version don't have a manifest kind ( c01d841 )

0.10.11 (2025-02-11)

Bug Fixes

  • back-peddle on blending Smarter account bots with other accounts ( 715e237 )
  • remove functionality to combine Smarter account chatbots ( 9f58f8a )

0.10.10 (2025-02-11)

Bug Fixes

  • check for SAMPluginSpecSelectorKeyDirectiveValues.ALWAYS in selected() ( b841915 )
  • consider that user_profile might be NoneType ( ee51324 )
  • search_terms must allow nulls and blanks ( f4f71f3 )
  • set SOCIAL_AUTH_LINKEDIN_OAUTH2_SCOPE ( 39a91e1 )

0.10.9 (2025-02-10)

Bug Fixes

  • if we have both plugin_meta AND manifest, then the manifest takes precedence ( ddfd25a )

0.10.8 (2025-02-09)

Bug Fixes

  • convert url params into valid strings ( f12346a )
  • get_model_titles() should return titles in underscored lower case ( 6a31bb6 )
  • send all table output in camelCase ( 81a49bb )

0.10.7 (2025-02-09)

Bug Fixes

  • check isinstance(request, WSGIRequest) ( 8e2492e )
  • fully inspect request before attempting to do anything with it ( 19f9ace )
  • initialize the admin for the account when we only have an account number ( 7770406 )
  • look for mysql db errors ( c41e21f )
  • set api keys for googleai and metaai ( 26596fb )
  • SmarterRequestMixin should ignore paths for django /admin/ and /docs/ ( cb777f7 )

0.10.6 (2025-02-04)

This is a major low-level refactoring of business logic for Account and WSGI request objects. Summarizing the nature of changes:

  • moved most db insert/update/delete operations to asynchronous background tasks.
  • refactor all account logic into AccountMixin to standardize business logic and to improve db caching
  • refactor all WSGI request analysis into SmarterRequestMixin to standardize identification of chat and chatbot requests and to improve cache performance.

Bug Fixes

  • add a generic Exception handler for cases where Python doesn't catch AttributeError ( 42a757b )
  • add account to Chat.objects.create() ( 9cb4e0c )
  • bad user attribute. changed 'user' to 'email' ( 8fa4156 )
  • catch any exception on SAMJournal.objects.create() ( e2e3746 )
  • chatbot_id initialization from /chat/config/ ( 2ed7f77 )
  • ChatBotHelper and ChatBotApiBaseViewSet handling of named urls - https://example.3141-5926-5359.api.smarter.sh ( 2bc5877 )
  • cleanup json dump ( 24e62b5 )
  • ensure that ChatBotHelper still works with sandbox urls ( 6bca39a )
  • ensure that the url path includes /api/ ( 4bfebb9 )
  • ensure that thing and command are present in journaled json error responses ( 1110ef3 )
  • ensure that thing and command are present in journaled json error responses ( e0cf9c3 )
  • ensure that we can journal commands w no manifest ( 5de8a5e )
  • fail more gracefully is we don't find the chatbot ( 04f674c )
  • get the journal working with anonymous users ( ceb1d6b )
  • handle /smarter/ ( de979e0 )
  • handle cases where properties are unset after initialization ( 188b72b )
  • handle cases where properties are unset after initialization ( 785d1e8 )
  • handle cases where properties are unset after initialization ( 84abe52 )
  • initialize user_profile from user and account properties instead of local variables ( ececf82 )
  • instantiations from chatbot id ( e0bf9f1 )
  • is_named_url ( 423eae8 )
  • journaled json error responses ( d6a1599 )
  • make bool defaults serializable ( 3e88a43 )
  • only cache if we actually have an object. duhgit add . ( 1dc01b2 )
  • only create a new chat session if we have all of the data ( e96fc6f )
  • race condition when tearing down ( 27a8729 )
  • recursion problems in self.cache due introduced by early read attempts ( 25edb2a )
  • remove /smarter/ endpoint ( 0e12955 )
  • send a 403 response on auth failure ( 7df3489 )
  • set db password on each deployment, in case it changes ( df09b48 )
  • url_chatbot should take the form /api/v1/chatbots/{self.id}/ ( fc1662e )

0.10.5 (2025-01-24)

Bug Fixes

  • add smarter demo bots to ChatBotHelper. init () ( 52e7cdd )
  • ChatConfigView() should always return json ( e1274bb )
  • ChatConfigView() should always return json ( bbb04b4 )
  • ensure that we can fall back to a smarter chatbot if it exists ( a221491 )

0.10.4 (2025-01-23)

Bug Fixes

  • add first_name, last_name ( 8ff338a )
  • give celery time to create records before making assertions ( 0948076 )
  • move PluginSelectorHistory.objects.create() to celery ( 4dd28de )
  • provide a user_profile to Plugin whenever possible ( ab2a5fc )
  • providers should not be singletons ( 5d210fa )

0.10.3 (2025-01-22)

Bug Fixes

  • broken favicon link ( 80c22ef )
  • broken link media/illustrations/sigma-1/17-dark.png ( bbce490 )
  • only show django admin, wagtail, changelog to superusers ( 65183dd )

0.10.2 (2025-01-22)

Bug Fixes

0.10.1 (2025-01-22)

Bug Fixes

0.10.0 (2025-01-22)

Bug Fixes

  • add toggle switch to display/hide system messages ( 0d2e5dd )
  • add toggle switch to display/hide system messages ( 979c586 )
  • ensure that all django objects are created via Celery ( 9b4812b )
  • make verbose logging a function of a waffle switch ( 8e90ee5 )
  • send user credentials by email ( 07d4dad )
  • sign in url should be a valid url instead of only a domain ( d37d30b )

Features

  • add an html welcome email for new accounts. ( 310e137 )
  • add DailyBillingRecord model ( 8f29565 )
  • cache chat instances by session_key ( 9fb97e9 )
  • create ProviderDbMixin as middleware for all async db operations ( 1e5c964 )
  • echo tool return values to the chat console ( 1b43c97 )
  • log any cache hits ( 35e04d3 )

0.10.1 (2025-01-22)

Bug Fixes

0.10.0 (2025-01-22)

Bug Fixes

  • add toggle switch to display/hide system messages ( 0d2e5dd )
  • add toggle switch to display/hide system messages ( 979c586 )
  • ensure that all django objects are created via Celery ( 9b4812b )
  • make verbose logging a function of a waffle switch ( 8e90ee5 )
  • send user credentials by email ( 07d4dad )
  • sign in url should be a valid url instead of only a domain ( d37d30b )

Features

  • add an html welcome email for new accounts. ( 310e137 )
  • add DailyBillingRecord model ( 8f29565 )
  • cache chat instances by session_key ( 9fb97e9 )
  • create ProviderDbMixin as middleware for all async db operations ( 1e5c964 )
  • echo tool return values to the chat console ( 1b43c97 )
  • log any cache hits ( 35e04d3 )

0.9.0 (2025-01-14)

Bug Fixes

  • all docs paths should be relative to the ubuntu smarter_user home folder ( b7de813 )
  • chatbot_requests_serializer is many=False ( 419825d )
  • check whether user is authenticated before setting dashboard context ( b0f7d7a )
  • clean messages on 2nd pass ( 8e1ab22 )
  • developer doc paths ( b459d4d )
  • developer doc paths ( 8793dea )
  • redirect to login page on 403 error ( b3f0240 )
  • trouble shoot smarter dict first_iteration and second_iteration dicts ( 2388b86 )
  • we only want the most recent batch of requests ( a90a4d8 )

Features

  • add more smarter dashboard widgets ( a9d66f7 )
  • add smarter meta prompts for function calling and token charges ( 357b576 )
  • code dashboard widgets ( 3967b7a )
  • create and style smarter dashboard widgets ( 9d059e7 )
  • ensure that message history is not duplicated ( 7421540 )
  • finesse component state management ( b9916b3 )
  • get Console working with ChatApp config as a prop ( 2c087c0 )

0.8.0 (2025-01-12)

Bug Fixes

Features

  • add ability to create a new chat session. ( 0b749cc )
  • add context managed config to ChatApp ( b00845b )
  • add custom styling for smarter message items ( 3303476 )
  • add fontwesome state icons to app title ( ce1c37e )
  • code menu item click handler ( 2d45979 )
  • code state-based, formatted console output ( 78a8e45 )
  • create a react context for managing config inside of state ( 05db6f0 )
  • scaffold new console output window pane ( f45e6c4 )
  • scaffold new console output window pane ( 9eaec6b )
  • scaffold tabbed window ( d58d25c )
  • simulate an ubuntu pod shell environment ( 4496107 )
  • style console window and make responsive ( 19c1862 )
  • style the console json log data ( a837dad )
  • style the new log console ( 98bf303 )
  • style the smarter system chat items ( 680d4bc )

0.7.9 (2025-01-09)

Bug Fixes

  • add chat_tool_call_history, chat_plugin_usage_history, chatbot_request_history ( 2c07e4c )
  • add session_key to PluginSelectorHistory ( 10e903a )
  • add session_key to PluginSelectorHistory ( 96c2eef )
  • ChatHelper should return the entire chat object rather than only id ( 523b8fe )
  • finesse api error handling of ChatConfigView ( 8850c4a )

0.7.8 (2025-01-09)

Bug Fixes

  • add remaining history tables to chatapp config ( dadb9bd )

0.7.7 (2025-01-08)

Bug Fixes

0.7.6 (2025-01-08)

Bug Fixes

  • add SMARTER_WAFFLE_SWITCH_SUPPRESS_FOR_CHATBOTS, SMARTER_WAFFLE_SWITCH_CHATAPP_VIEW_LOGGING, SMARTER_WAFFLE_MANIFEST_LOGGING ( 0bebf2f )
  • cleanup logger entries ( f550259 )
  • cookie expirations ( f3f59f9 )
  • CSRF_COOKIE_DOMAIN ( ca7d611 )
  • SMARTER_WAFFLE_REACTAPP_DEBUG_MODE ( efd7402 )

0.7.5 (2025-01-08)

Bug Fixes

  • use a trimmed, cleaned url for Chat() instances ( 262d7fa )

0.7.4 (2025-01-08)

Bug Fixes

  • add session_key url param and ensure that session_key is unique to chatbot url path ( 60acb6f )
  • make combination of session_key and url unique ( a074976 )
  • parameterize all cookie names and set 24 hour cookie expirations ( c652240 )

0.7.3 (2025-01-08)

Bug Fixes

0.7.2 (2025-01-07)

Bug Fixes

  • api/v1/chatbots/, api/v1/chats/ ( edfa1ed )
  • change logo anchor to '/' for authenticated users ( 6954eb5 )
  • fix all broken dashboard urls ( c85c2d3 )
  • fixup legal links in console menu ( 4da3b3e )
  • keep authenticated users on the platform ( b9dc50c )
  • reorganize dashboard sidebar menu ( c0238c8 )
  • restructure console sidebar menu ( ebfcc38 )
  • revert chats to chat ( 1274813 )
  • sidebar menu active on clicked item ( 1c543ab )

0.7.1 (2025-01-06)

Bug Fixes

  • ensure that csrftoken is not included in 'Cookies' ( 840fef1 )
  • ensure that http response is a json object ( 9338cab )
  • ensure that only one csrftoken cookie exists ( c12bddb )
  • ensure that only one csrftoken cookie exists ( affbcc8 )

0.7.0 (2025-01-03)

Features

Bug Fixes

  • add chat llm providers for MetaAI and GoogleAI
  • refactor: create a OpenAICompatibleChatProvider abstract base class and a default…
  • refactor Dockerfile and docker-compose.yml to build and run as non-root user
  • refactor build/deploy workflows
  • add LinkedIn oauth configuration
  • monthly Dependabot version bumps

0.6.0 (2024-11-21)

Features

  • version bump all requirements and upgrade default model to gpt-4-turbo ( fa6def4 )

0.5.4 (2024-07-12)

Bug Fixes

  • account_for_user() should ensure that user is not AnonymousUser ( 35f08f7 )
  • add ampersands ( be04891 )
  • add ampersands ( 39a8c0c )
  • add assistant response and tool calls to message list history ( 793cb8b )
  • docker-compose-install ( 2522bf8 )
  • dumbass mistake ( 9d3513d )
  • dumbass mistake ( 9308977 )
  • dumbass mistake ( e2c0311 )
  • evaluate data type of kwargs['name'] and warn if not str ( 3957fb1 )
  • make syntax errors ( 7afa0c5 )
  • make syntax errors ( f9432b5 )
  • rewrite file instead of append ( 9ec807b )
  • add ChatBot.default_system_role migration ( 5246cc4 )
  • add default_system_role to the chat and chatbot models ( 266d873 )
  • add sensible defaults for all error response attributes ( ecd9d2d )
  • ensure internal error stack traces flow back to cli output ( dafd736 )
  • ensure that the error description at the bottom of the stack trace echos to cli console output ( c60a7ae )

0.5.3 (2024-07-05)

Bug Fixes

0.5.2 (2024-07-01)

  • add authentication backend to login(). now required bc of social_core ( b8daf55 )
  • fix indentation of 1st line ( f4e2a73 )
  • fix path assets/media/illustrations/sigma-1/17-dark.png ( 201c72f )
  • remove wagtail userbar tag ( 1407756 )

0.5.1 (2024-06-27)

Bug Fixes

  • limit openapi documentation generation to /api/ ( 94d35cd )

0.5.0 (2024-06-15)

Features

0.4.1 (2024-06-11)

Bug Fixes in /api/docs

  • fix code element styling in docs django templates ( 7d3763d )
  • create unit tests for brokered api end point data sets: example-manifest, json-schema
  • refactor urls.py to use SAMKinds to distinguish all manifest and json-schema urls endpoints
  • refactor api/docs/ cli menu item

0.4.0 (2024-06-10)

Features

  • add /api/docs/
  • add /api/v1/cli/schema/ / ( fd583b6 )

0.3.9 (2024-06-09)

Bug Fixes

  • create and assign a ChatBot to the test Chat session ( 005491a )
  • create and assign a ChatBot to the test Chat session ( 0cddf38 )
  • ensure that ChatBot flows to smarter handler() via the chat_helper ( 85288dc )
  • force a new release ( ab96126 )
  • whatchmedo directory ( df5971d )

0.3.8 (2024-06-05)

Features

  • added a complete suite of unit tests for /smarter/apps/api/v1/cli
  • added unit tests for smarter/lib/manifest/broker/

0.3.7 (2024-06-01)

Bug Fixes

  • misc patches related to 0.3.x release
  • add unit tests

0.3.2 (2024-05-31)

Bug Fixes

  • set url_chatbot() to urljoin(self.url, /api/v1/chatbots/smarter/) ( ad8036b )
  • set url_chatbot() to urljoin(self.url, /api/v1/chatbots/smarter/) ( 7d2eb0c )

0.3.1 (2024-05-31)

Bug Fixes

  • url_chatbot should be urljoin(self.hostname, /api/v1/chatbots/smarter/) ( a794fdf )

0.3.6 (2024-06-01)

Bug Fixes

  • ensure that we fail gracefully ( 3d4ab45 )
  • make the error response match api/v1/cli error format ( c7f9f72 )

0.3.5 (2024-06-01)

Bug Fixes

  • RecursionError cause by self.user ( 4362f84 )

0.3.4 (2024-06-01)

Bug Fixes

  • add protocol to ChatBot.url_chatbot() ( 4c146aa )

0.3.3 (2024-06-01)

Bug Fixes

0.3.2 (2024-05-31)

Bug Fixes

  • set url_chatbot() to urljoin(self.url, /api/v1/chatbots/smarter/) ( ad8036b )
  • set url_chatbot() to urljoin(self.url, /api/v1/chatbots/smarter/) ( 7d2eb0c )

0.3.1 (2024-05-31)

Bug Fixes

  • url_chatbot should be urljoin(self.hostname, /api/v1/chatbots/smarter/) ( a794fdf )

0.3.0 (2024-05-31)

Features

  • create a universal journal to log all api request/response pairs ( 2d2fbaa )
  • create SmarterJournaledJsonErrorResponse() ( bb1ab3b )
  • pass prompt to broker via kwargs ( e4efb09 )
  • code ApiV1CliChatApiView and refactor chatapp to make it work with journaled json responses ( 8e500a7 )
  • scaffold ApiV1CliChatApiView() ( 31cfd1d )
  • scaffold ApiV1CliChatApiView() ( 6f127bb )
  • create SmarterTokenAuthenticationMiddleware to automate api key authentication

0.2.1 (2024-05-19)

A refactor of the Django chatbot app.

Feature

  • add ChatBot.dns_verification_status
  • add Django signals:
  • chatbot_dns_verification_initiated
  • chatbot_dns_verified
  • chatbot_dns_failed
  • chatbot_dns_verification_status_changed
  • refactor aws route53 processes for asynchronous request handling
  • add task to Undeploy a ChatBot
  • add unit tests for tasks and manage.py commands
  • refactor Dockerfile to improve layer caching
  • refactor docker-compose.yaml and Helm chart to enable multiple worker threads

0.2.0 (2024-05-16)

Introduces remote Sql server integration to the Plugin class. New Django ORMs PluginSql and SqlConnection have been added for persinsting remote sql server connections, and parameterized sql queries. SAMPluginDataSqlConnectionBroker is added to fully integrate these models to /api/v1/cli.

Features

  • add SAMPluginDataSqlConnectionBroker to api/v1/cli ( f120cfd )
  • add SAMPluginDataSqlConnectionBroker to api/v1/cli ( 54fa4da )
  • add unit tests ( 2c9e355 )
  • scaffold PluginSql and Pydantic model ( e1bb076 )
  • scaffold PluginSql models ( 17daf61 )

0.1.2 (2024-05-14)

Introduces a powerful new architecture for processing Kubernetes-style manifests for managing Smarter resources. The new Broker class architecture facilitates lightweight implementations of the smarter command-line implementation and the REST API that backs it.

New features

  • add /api/v1/cli rest api backing services for Go lang command-line interface
  • add Pydantic to formally model cli manifests. Enforces manifest structural integrity as well as data and business rule validations.
  • add SAMLoader, a generic yaml manifest loader for Pydantic
  • add Broker class to abstract cli services implementations
  • implement all Plugin cli services
  • add a Controller class to Plugin, facilitating the future introduction of new data classes to support remote SQl databases and REST API data sources.

0.1.1 (2024-04-02)

New features

  • add Helm charts
  • add GitHub Actions CI/CD workflows
  • add Makefile commands to automate local developer setup
  • implement final chat REST API, referenced as http://{host}/admin/chat/chathistory/config/ which returns a context dict for a chat session. Enables a single authenticated Smarter user to manage multiple chat sessions in the sandbox.

0.1.0 (2024-04-01)

New features

  • add FQDM's to CSRF_TRUSTED_ORIGINS ( 6d6bd92 )
  • pass user to function_calling_plugin() ( 0e6b1fa )
  • remove custom login.html ( b4f091f )
  • set CSRF_TRUSTED_ORIGINS = ALLOWED_HOSTS ( 62a8ca3 )
  • STATIC_URL = '/static/' ( 277fff3 )
  • STATIC_URL = '/static/' ( 89a2e0c )
  • values in the CSRF_TRUSTED_ORIGINS setting must start with a scheme ( dc9ca5e )
  • add api-key authentication ( 491927f )
  • add chat history models and signals ( 07e5f82 )
  • automate build/deploy by environment ( f808ed5 )
  • restore most recent chat history when app starts up ( 118d884 )

0.0.1 (2024-02-21)

Django based REST API and ReactJS web app hosting an MVP plugin platform for OpenAI API Function Calling. This release implements the following features:

New features

  • Docker-based local development environment with MySQL and Redis
  • Celery worker and beat support
  • an integrated ReactJS web app for interacting with LLM chatbots.
  • a multi-environment conf module based on Pydantic, that resolves automated parameter initializations using any combination of command line assignments, environment variables, .env and/or terraform.tfvars files.
  • Django REST Framework driven API for accounts and Plugins
  • Django backed Plugin class that can be initialized from either yaml or json files
  • Django Account class that facilitate a team approach to managing Plugins
  • Python unit tests for all modules
  • Github Action CI/CD for automated unit testing on merges to staging and main, and automated Docker build/push to AWS ECR
  • Terraform based AWS cloud infrastructure management of Kubernetes resources
  • Pain-free onboarding of new developers, including a complete Makefile and pre-commit code formatting, code linting and misc security validation checks.

We're


Hiring!

Let's do something amazing, together! We're currently hiring for Full Stack and React developers, devops, and prompt engineering positions.

Requirements

Pass an online skills assessment exam
Communication and time-management skills
Intellectual curiosity and a passion for learning
Willingness and ability to dedicate yourself full time to this position

Our Achievements

Patented technology
Developers of Stepwise AI technology
U.S. Dept of Education grant recipient
Explore More

Stay
Connected