37 Commits
Author SHA1 Message Date
Zamil Majdyandmajdyz dda4efce00 [AGPT-593] Avoid persisting request/response with no fields - Part 2 (#179)
Co-authored-by: majdyz <[email protected]>
2024-04-04 17:38:06 +02:00
Swifty b19c426946 [AGPT-547] Systematic prompt template perfomance tool (#144)
* Update Interview and LLMCallAttempt models

* Refactor LLMCallAttempt model

* Refactor code and update logging IDs

* Refactor AIBlock class and handle exception in start_interview

* Add template analytics

* Refactor analytics.py to use get_template_performance() instead of load_data()

* Add migration lock file and analytics functionality

* Pr coments

* Add model field to AIBlock and LLMCallTemplate
2024-03-22 10:58:28 +01:00
6995f6c457 Dev -> Master Batch 1 Part 1 (#109)
* Route schema changes

* Delete ruff.config.json

* save current changes

* style fixes by ruff

* Add class parsing capability

* Fix bugs

* Address comments

* Fix benchmarks

* Fix benchmarks

* Fix benchmarks

* Add comments

* fixing types

* Add error handling and status messages for application creation

* Refactor fetch_deliverable function and update application creation status

* Refactor benchmark output formatting

* Remove unnecessary print statement in fetch_deliverable function

* Propagate DB schema changes: Function <-> CompiledRouteSpec (#65)

Propagate DB schema changes: Function <-> CompiledRouteSpec (#65)

---------

Co-authored-by: majdyz <[email protected]>
Co-authored-by: Swifty <[email protected]>
Co-authored-by: majdyz <[email protected]>

* emoved broken hardcoded requirements

* Add benchmarking functionality

* Update branch restrictions in GitHub workflows

* Add pytest-cov to dependencies

* Update ruff formatter command to include --check option

* Update workflow names

* Refactor code formatting and fix indentation issues

* Update Python dependency caching and installation process

* Add Prisma client generation step to CI workflow

* Refactor test_process_object_type to use async/await

* Add pytest and ValidationError imports, update arg_types assertion, and add test for ValidationError

* Remove unused imports and commented code

* Add logger to OpenAIChatClient class

* Add async context manager for database connection and disconnection

* Add blank line for readability

* Refactor function_def.arg_types assignment in ast_test.py

* mark integration tests

* Update test workflow name

* Add OpenAI API key configuration

* Better Types for Requirements Request/Response (#76)

Better Types for Requirements Request/Response

---------

Co-authored-by: majdyz <[email protected]>

* [AGPT-474] End-to-end Benchmark (#77)

* Remove unnecessary fetch_deliverable calls and update invoice_generator_requirements

* Fix typo in hardcoded.py

* Add missing app IDs and interview IDs for calendar booking, inventory management, and invoicing systems

* Add options to benchmark and example commands

* Refactor benchmarking code and add new functions

* Add task description method to ExampleTask enum

* Added end-to-end running

* Add hardcoded flag to filter examples in benchmark.py

* Refactor run_benchmark_example function to handle exceptions

* Fix error handling in specification routes

* Fix Function generation bug on nested object type (#79)

Co-authored-by: majdyz <[email protected]>

* Speeding up requirements system

---------

Co-authored-by: Zamil Majdy <[email protected]>
Co-authored-by: majdyz <[email protected]>

* Refactor code: Remove unused imports and clean up formatting

* [AGPT-478] Add Support for Composite Type with multiple Pydantic/nont-primitive classes (#78)

* [AGPT-478] Add support for multiple composite Pydantic objects

* Ruff Ruff!

* Fix failing test

* formatting

* fix populate-db command

* fix run all benchmarks

---------

Co-authored-by: majdyz <[email protected]>
Co-authored-by: Swifty <[email protected]>

* Refactor package handling in packager.py (#81)

* [Fix] User provided app name being replaced (#82)

* Only make databases when required (#83)

* feat: make the name match

* feat: database becomes optional

* Update agent.py

* Integrate related types into the requirements system (#84)

* feat: make the name match

* feat: database becomes optional

* feat: initial model changes

* feat: add prompts

* feat: more prompts

* fix: nits

* fix: wrong type 😢

* feat: improved prompts

* Cleanup for field type (#85)

Co-authored-by: majdyz <[email protected]>

* [AGPT-489] Improve type composite-type matching & extracting algorithm (#86)

Co-authored-by: majdyz <[email protected]>

* [AGPT-489] Add Autogeneration of Typing import (#87)

Co-authored-by: majdyz <[email protected]>

* [AGPT-489] Fix broken class compiling logic (#88)

Co-authored-by: majdyz <[email protected]>

* [AGPT-489] Fix function fetching to always include RelatedTypes (#89)

[AGPT-489] Fix function fetching to always include RelatedTypes

---------

Co-authored-by: majdyz <[email protected]>

* fix lock file

* feat: endpoint updates (#95)

* feat: endpoint updates

* fix: ambiguous param

* [AGPT-486] Fix codegen generate code with missing pydantic object (#92)

Co-authored-by: majdyz <[email protected]>

* Fix retry prompt (#96)

Co-authored-by: majdyz <[email protected]>

* Allow benchmark on $PORT (#98)

* Ntindle/agpt 506 add a bit of debug tooling for requirements gen (#100)

* [AGPT-485] Fix missing pydantic object during requirement-step; leading to LLM to guess wrong signature (#97)

[AGPT-485] Fix missing pydantic object during requirement-step; leading to LLM to guess wrong signature

---------

Co-authored-by: majdyz <[email protected]>

* [AGPT-157] Add Database Integration Generation (#90)

* Added prisma client to server code

* Add DatabaseSchema to INCLUDE_FUNC

* Update functions to be async and add database schema documentation

* Add DatabaseSchema and DatabaseTables to ApiRouteSpec

* Updated dev prompts for db

* Update profile management descriptions

* Update route function definition to be async

* Remove logging of database schema

* Add Prisma schema file generation

* Refactor benchmark and agent modules

* Refactor code and comment out debug statements

* formatting

* Add available_functions to develop_route

* Update prisma import and method calls

* loading all related tables

* Refactor create_prisma_scheama_file function to handle cases with no database schema

* Fix async function call in packager.py

* Fix database table query in packager.py

* Fix database access and unnecessary imports

* review comments

* [AGPT-508] Enum support for Codex - Generation Logic Layer (#102)

Co-authored-by: majdyz <[email protected]>

* Add Enum Generation to Requriements (#101)

* Added prisma client to server code

* Add DatabaseSchema to INCLUDE_FUNC

* Update functions to be async and add database schema documentation

* Add DatabaseSchema and DatabaseTables to ApiRouteSpec

* Updated dev prompts for db

* Update profile management descriptions

* Update route function definition to be async

* Remove logging of database schema

* Add Prisma schema file generation

* Refactor benchmark and agent modules

* Refactor code and comment out debug statements

* formatting

* Add available_functions to develop_route

* Update prisma import and method calls

* loading all related tables

* Refactor create_prisma_scheama_file function to handle cases with no database schema

* Fix async function call in packager.py

* Fix database table query in packager.py

* Fix database access and unnecessary imports

* feat: add enums to the database gen

* fix: formatting

* Updated to new schema

* update hardcoded requirements

* fix: objectType generation without type bool

* Add database enum import statement

* removed unused var as failing lint check

---------

Co-authored-by: SwiftyOS <[email protected]>

* More Linting Issues Fixes (#99)

* fix: more linting issues

* Remove error log for async functions

* Fix return_type default value in FunctionDef class

* Added another validation check

---------

Co-authored-by: Swifty <[email protected]>

* [AGPT-463] Add code generation validation using Ruff (#103)

---------

Co-authored-by: majdyz <[email protected]>

* feat: extract external command on in memory code to a function with tests

* feat: prisma model parser

* feat: database test updates

now requires prisma to run

* feat: test for prisma accessible

* feat: update to use format and validate

Also saves the formatted and validated models in place

* fix: lint

* fix: remove unused variable

* feat: allow multiple generators

* .gitignore and .env.example (#107)

* feat: .env.example

* feat: gitignore

* fix: replace all bad chars with NOTHING

also fix the format string

* Add Database Docker Compose File (#108)

* feat: .env.example

* feat: gitignore

* fix: replace all bad chars with NOTHING

also fix the format string

* feat: add docker compose with only db

---------

Co-authored-by: Swifty <[email protected]>

* feat: remove vector requirement (#106)

* Fix lifecycle and prisma models and enums missing (#105)

* fix: add prisma model imports fro root level

* fix: reorder start code and add lifecycle

* Validate Database Generation (#104)

* feat: extract external command on in memory code to a function with tests

* feat: prisma model parser

* feat: database test updates

now requires prisma to run

* feat: test for prisma accessible

* feat: update to use format and validate

Also saves the formatted and validated models in place

* fix: lint

* fix: remove unused variable

* feat: allow multiple generators

* formatting

* Change logger.info to logger.debug in exec_external_on_contents function

* Update error logging in exec_external_on_contents function

* Update response model and route annotation in compile.py

* Force

* Ruff

* Fix Api route spec

* formatting

* Dont generate envexample passwords with symbols in them (#117)

* fix: don't use special chars in db password

* fix: linting

* [AGPT-540] Add missing initialization of available object types (#113)

* [AGPT-540] Add missing initialization of available object types

* [AGPT-540] Add missing initialization of available object types

* [AGPT-540] Add missing initialization of available object types

* Ruff

* allow non-annotated type checking

* Include all available function for ruff

* Fix tests

* Make DB work

* Make stubbing work

* Make papa-lint happy

* Ruffs

* Add prisma model validation layer

* Improve prisma querying by avoiding conflict

* Move on during failure formatting

---------

Co-authored-by: majdyz <[email protected]>

* main into dev (#118)

* Update setup guide.

* [AGPT-544] Vague 500 errors in interview stage (#115)

* Add error handling for user not found in database during interview step.

* Add error handling for app not found in database during interview step.

* Add error handling for interview not found in database during interview step.

* Add error handling for nonexistent questions in interview step.

* Add error handling for non-"ask" tool in user answers in interview step.

* Clarify comment describing interview next_step.

---------

Co-authored-by: Toran Bruce Richards <[email protected]>

* [AGPT-511] Resume running from any point (#114)

* Refactor populate_db function and add get_resume_points command

* Fix app ID reference in benchmark.py

* Add ResumePoint model

* Added runner funcitons to running codex from the cli

* Add application description field to ApplicationBase model and update create_app method in CodexClient

* Refactor code to run tasks concurrently

* Add include parameter to find_many() method in get_resume_points()

* Add disconnect calls to asyncio event loop

* Update resume_point name to display only the first 30 characters

* Remove commented out code and unused imports

* Remove unused code

* formatting

* Fix validation error handling in develop.py

* formatting

* fixes

* Add validation error for unimplemented main function

* Validate and try-fix generated endpoint db and model usage (#116)

* feat: log status

* feat: trivial implementation of copy

works for request -> response and response-> request for unfilled object but not list[unfilled_object]

* fix: i cant rememember

* feat: more complex

* feat: mostly working

* fix: fixes from tests

* feat: tests

* fix: linting problems and test name

* feat: add more supported types

* fix: remove unused data

* fix: stop using print

* fix: arrays of arrays

* fix: lint

* fix: reduce mess

* feat: more complex type that I hope we never actually use

* fix: lint

---------

Co-authored-by: majdyz <[email protected]>
Co-authored-by: majdyz <[email protected]>
Co-authored-by: Zamil Majdy <[email protected]>
Co-authored-by: Nicholas Tindle <[email protected]>
Co-authored-by: Nicholas Tindle <[email protected]>
Co-authored-by: Toran Bruce Richards <[email protected]>
2024-03-15 17:16:53 +01:00
e79d563fd4 Dev -> Master (#73)
* Route schema changes

* Delete ruff.config.json

* save current changes

* style fixes by ruff

* Add class parsing capability

* Fix bugs

* Address comments

* Fix benchmarks

* Fix benchmarks

* Fix benchmarks

* Add comments

* fixing types

* Add error handling and status messages for application creation

* Refactor fetch_deliverable function and update application creation status

* Refactor benchmark output formatting

* Remove unnecessary print statement in fetch_deliverable function

* Propagate DB schema changes: Function <-> CompiledRouteSpec (#65)

Propagate DB schema changes: Function <-> CompiledRouteSpec (#65)

---------

Co-authored-by: majdyz <[email protected]>
Co-authored-by: Swifty <[email protected]>
Co-authored-by: majdyz <[email protected]>

* emoved broken hardcoded requirements

* Add benchmarking functionality

* Update branch restrictions in GitHub workflows

* Add pytest-cov to dependencies

* Update ruff formatter command to include --check option

* Update workflow names

* Refactor code formatting and fix indentation issues

* Update Python dependency caching and installation process

* Add Prisma client generation step to CI workflow

* Refactor test_process_object_type to use async/await

* Add pytest and ValidationError imports, update arg_types assertion, and add test for ValidationError

* Remove unused imports and commented code

* Add logger to OpenAIChatClient class

* Add async context manager for database connection and disconnection

* Add blank line for readability

* Refactor function_def.arg_types assignment in ast_test.py

* mark integration tests

* Update test workflow name

* Add OpenAI API key configuration

* Better Types for Requirements Request/Response (#76)

Better Types for Requirements Request/Response

---------

Co-authored-by: majdyz <[email protected]>

* [AGPT-474] End-to-end Benchmark (#77)

* Remove unnecessary fetch_deliverable calls and update invoice_generator_requirements

* Fix typo in hardcoded.py

* Add missing app IDs and interview IDs for calendar booking, inventory management, and invoicing systems

* Add options to benchmark and example commands

* Refactor benchmarking code and add new functions

* Add task description method to ExampleTask enum

* Added end-to-end running

* Add hardcoded flag to filter examples in benchmark.py

* Refactor run_benchmark_example function to handle exceptions

* Fix error handling in specification routes

* Fix Function generation bug on nested object type (#79)

Co-authored-by: majdyz <[email protected]>

* Speeding up requirements system

---------

Co-authored-by: Zamil Majdy <[email protected]>
Co-authored-by: majdyz <[email protected]>

* Refactor code: Remove unused imports and clean up formatting

* [AGPT-478] Add Support for Composite Type with multiple Pydantic/nont-primitive classes (#78)

* [AGPT-478] Add support for multiple composite Pydantic objects

* Ruff Ruff!

* Fix failing test

* formatting

* fix populate-db command

* fix run all benchmarks

---------

Co-authored-by: majdyz <[email protected]>
Co-authored-by: Swifty <[email protected]>

* Refactor package handling in packager.py (#81)

* [Fix] User provided app name being replaced (#82)

* Only make databases when required (#83)

* feat: make the name match

* feat: database becomes optional

* Update agent.py

* Integrate related types into the requirements system (#84)

* feat: make the name match

* feat: database becomes optional

* feat: initial model changes

* feat: add prompts

* feat: more prompts

* fix: nits

* fix: wrong type 😢

* feat: improved prompts

* Cleanup for field type (#85)

Co-authored-by: majdyz <[email protected]>

* [AGPT-489] Improve type composite-type matching & extracting algorithm (#86)

Co-authored-by: majdyz <[email protected]>

* [AGPT-489] Add Autogeneration of Typing import (#87)

Co-authored-by: majdyz <[email protected]>

* [AGPT-489] Fix broken class compiling logic (#88)

Co-authored-by: majdyz <[email protected]>

* [AGPT-489] Fix function fetching to always include RelatedTypes (#89)

[AGPT-489] Fix function fetching to always include RelatedTypes

---------

Co-authored-by: majdyz <[email protected]>

* fix lock file

* feat: endpoint updates (#95)

* feat: endpoint updates

* fix: ambiguous param

* [AGPT-486] Fix codegen generate code with missing pydantic object (#92)

Co-authored-by: majdyz <[email protected]>

* Fix retry prompt (#96)

Co-authored-by: majdyz <[email protected]>

* Allow benchmark on $PORT (#98)

* Ntindle/agpt 506 add a bit of debug tooling for requirements gen (#100)

* [AGPT-485] Fix missing pydantic object during requirement-step; leading to LLM to guess wrong signature (#97)

[AGPT-485] Fix missing pydantic object during requirement-step; leading to LLM to guess wrong signature

---------

Co-authored-by: majdyz <[email protected]>

* [AGPT-157] Add Database Integration Generation (#90)

* Added prisma client to server code

* Add DatabaseSchema to INCLUDE_FUNC

* Update functions to be async and add database schema documentation

* Add DatabaseSchema and DatabaseTables to ApiRouteSpec

* Updated dev prompts for db

* Update profile management descriptions

* Update route function definition to be async

* Remove logging of database schema

* Add Prisma schema file generation

* Refactor benchmark and agent modules

* Refactor code and comment out debug statements

* formatting

* Add available_functions to develop_route

* Update prisma import and method calls

* loading all related tables

* Refactor create_prisma_scheama_file function to handle cases with no database schema

* Fix async function call in packager.py

* Fix database table query in packager.py

* Fix database access and unnecessary imports

* review comments

* [AGPT-508] Enum support for Codex - Generation Logic Layer (#102)

Co-authored-by: majdyz <[email protected]>

* Add Enum Generation to Requriements (#101)

* Added prisma client to server code

* Add DatabaseSchema to INCLUDE_FUNC

* Update functions to be async and add database schema documentation

* Add DatabaseSchema and DatabaseTables to ApiRouteSpec

* Updated dev prompts for db

* Update profile management descriptions

* Update route function definition to be async

* Remove logging of database schema

* Add Prisma schema file generation

* Refactor benchmark and agent modules

* Refactor code and comment out debug statements

* formatting

* Add available_functions to develop_route

* Update prisma import and method calls

* loading all related tables

* Refactor create_prisma_scheama_file function to handle cases with no database schema

* Fix async function call in packager.py

* Fix database table query in packager.py

* Fix database access and unnecessary imports

* feat: add enums to the database gen

* fix: formatting

* Updated to new schema

* update hardcoded requirements

* fix: objectType generation without type bool

* Add database enum import statement

* removed unused var as failing lint check

---------

Co-authored-by: SwiftyOS <[email protected]>

* More Linting Issues Fixes (#99)

* fix: more linting issues

* Remove error log for async functions

* Fix return_type default value in FunctionDef class

* Added another validation check

---------

Co-authored-by: Swifty <[email protected]>

* [AGPT-463] Add code generation validation using Ruff (#103)

---------

Co-authored-by: majdyz <[email protected]>

---------

Co-authored-by: majdyz <[email protected]>
Co-authored-by: majdyz <[email protected]>
Co-authored-by: Zamil Majdy <[email protected]>
Co-authored-by: Nicholas Tindle <[email protected]>
2024-03-13 15:55:04 +01:00
SwiftyOS 4a662d6125 Update ruff config 2024-03-04 14:14:03 +01:00
ntindle 9ff2270eee style fixes by ruff 2024-02-29 04:45:07 +00:00
Nicholas Tindle ec3c51925a feat: redid all of the interview phase 2024-02-28 22:44:43 -06:00
Nicholas Tindle a17b286ed5 feat: in progress 2024-02-28 16:34:40 -06:00
Nicholas Tindle 46ce1d02dc Merge branch 'main' into ntindle/agpt-400-update-post-spec-to-schedule-a-background-task-for 2024-02-28 11:04:36 -06:00
Nicholas Tindle b6030d8fd9 ref: push changes 2024-02-28 11:04:20 -06:00
majdyz 4f0230f7df Propagate DB changes, Fix broken APIs, Add more API tests 2024-02-27 22:17:02 +04:00
majdyz ad979a1cd9 Propagate DB changes, Fix broken APIs, Add more API tests 2024-02-27 22:14:47 +04:00
Nicholas Tindle f9021b8192 fix: accessing something that doesn't exist? 2024-02-26 15:03:02 -06:00
Nicholas Tindle 434f60e45b feat: start of model updating 2024-02-26 13:26:38 -06:00
SwiftyOS 02c901b17f Fix method value in APIRouteSpecModel 2024-02-22 10:40:33 +01:00
majdyz 589df81998 Add logging with exception, fix insertions 2024-02-20 18:12:43 +04:00
majdyz 398afa8273 [AGPT-290] Propagate DB-changes on schema refactoring 2024-02-20 13:32:36 +04:00
Nicholas Tindle aae10e3039 ref: move verbose logging to debug 2024-02-16 21:12:55 -06:00
SwiftyOS ce8260b45b Refactor logging statements and remove unnecessary print statements 2024-02-16 18:08:50 +01:00
SwiftyOS 8eb349c282 Fix merge conflicts 2024-02-16 09:24:42 +01:00
Nicholas Tindle 523f2e1993 ref: typing and poor error handling 2024-02-15 22:10:42 -06:00
SwiftyOS d059610a97 Various fixes 2024-02-15 16:15:47 +01:00
SwiftyOS 71c7c3dc30 Update import statement and default role value in UserBase class 2024-02-15 12:23:20 +01:00
SwiftyOS bc5d7700b2 fixing api_model.py 2024-02-15 12:10:25 +01:00
SwiftyOS a828da7744 typing fixes 2024-02-14 16:57:34 +01:00
SwiftyOS 1d4ed19220 Fix deployment process 2024-02-14 13:20:08 +01:00
SwiftyOS b42e2b0ec6 formatting 2024-02-13 11:50:53 +01:00
SwiftyOS 95a5051069 Update DeliverableResponse model and remove User relation 2024-02-13 11:50:16 +01:00
SwiftyOS f8957f8f65 Add function_def_id to Identifiers class 2024-02-13 11:35:30 +01:00
SwiftyOS afd359c8b3 Fix requestObject typo and update database field names 2024-02-08 17:51:58 +01:00
SwiftyOS 650746222b Added populating the database with requirements 2024-02-08 17:51:58 +01:00
SwiftyOS 5ea8f0ac73 Refactor API model mapping in database.py 2024-02-08 17:51:58 +01:00
SwiftyOS dbe1415d02 added deployment functionality 2024-02-08 17:51:58 +01:00
SwiftyOS 8bd687d504 Add deliverable-related functions to API model and database module 2024-02-08 17:51:58 +01:00
SwiftyOS 912bb53125 Added Implementation of specifications API 2024-02-08 17:51:58 +01:00
SwiftyOS 0686236196 Added Implementation of user-related API endpoints and add pagination support 2024-02-08 17:51:58 +01:00
SwiftyOS 9fbdb12612 Added outline of the codex api 2024-02-08 17:51:58 +01:00