Skip to content

Commit

Permalink
chore(backend): fix port numebr in back end and add end point confige…
Browse files Browse the repository at this point in the history
…ration to example (#96)

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

## Release Notes

- **Configuration**
  - Updated backend port from 8090 to 8080
- Added new GraphQL endpoint configuration in frontend environment file

- **Dependencies**
  - Upgraded Next.js to version 15.1.4
  - Updated React and React DOM to version 19.0.0

- **Frontend Changes**
  - Modified default AI model to 'gpt-4o'
  - Added client-side rendering for loading component
  - Improved WebSocket connection setup

- **Documentation**
  - Updated README with backend endpoint configuration instructions

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: pengyu <[email protected]>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Sma1lboy <[email protected]>
  • Loading branch information
4 people authored Jan 16, 2025
1 parent 4b6872b commit 71937dd
Show file tree
Hide file tree
Showing 27 changed files with 373 additions and 29,146 deletions.
2 changes: 1 addition & 1 deletion backend/.env
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
PORT=8090
PORT=8080
JWT_SECRET="JACKSONCHENNAHEULALLEN"
SALT_ROUNDS=123
8,338 changes: 0 additions & 8,338 deletions backend/pnpm-lock.yaml

This file was deleted.

13 changes: 5 additions & 8 deletions backend/src/build-system/handlers/backend/code-generate/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ import {
MissingConfigurationError,
ResponseParsingError,
} from 'src/build-system/errors';
import { Logger } from '@nestjs/common';

/**
* BackendCodeHandler is responsible for generating the backend codebase
Expand Down Expand Up @@ -65,20 +64,18 @@ export class BackendCodeHandler implements BuildHandler<string> {
databaseType,
databaseSchemas,
currentFile,
'javascript',
'javascript', // TODO: make sure this lang come from the context
dependencyFile,
);

let generatedCode: string;
try {
// Invoke the language model to generate the backend code
const messages: MessageInterface[] = [
{ content: backendCodePrompt, role: 'system' },
];
const modelResponse = await chatSyncWithClocker(
context,
messages,
'gpt-4o-mini',
{
model: 'gpt-4o-mini',
messages: [{ content: backendCodePrompt, role: 'system' }],
},
'generateBackendCode',
this.id,
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import {
FileNotFoundError,
FileModificationError,
ResponseParsingError,
ModelUnavailableError,
} from 'src/build-system/errors';

/**
Expand Down Expand Up @@ -47,12 +48,11 @@ export class BackendFileReviewHandler implements BuildHandler<string> {
try {
this.logger.log(`Scanning backend directory: ${backendPath}`);
files = await fs.readdir(backendPath);
if (!files.length) {
throw new FileNotFoundError('No files found in the backend directory.');
}
this.logger.debug(`Found files: ${files.join(', ')}`);
} catch (error) {
throw error;
throw new FileNotFoundError(
'No files found in the backend directory:' + error,
);
}

const filePrompt = prompts.identifyBackendFilesToModify(
Expand All @@ -70,13 +70,15 @@ export class BackendFileReviewHandler implements BuildHandler<string> {
];
modelResponse = await chatSyncWithClocker(
context,
messages,
'gpt-4o-mini',
{
model: 'gpt-4o-mini',
messages,
},
'generateBackendCode',
this.id,
);
} catch (error) {
throw error;
throw new ModelUnavailableError('Model Unavailable:' + error);
}

const filesToModify = this.parseFileIdentificationResponse(modelResponse);
Expand All @@ -87,39 +89,41 @@ export class BackendFileReviewHandler implements BuildHandler<string> {

for (const fileName of filesToModify) {
const filePath = path.join(backendPath, fileName);
let currentContent: string;
try {
const currentContent = await fs.readFile(filePath, 'utf-8');
const modificationPrompt = prompts.generateFileModificationPrompt(
fileName,
currentContent,
backendRequirement,
projectOverview,
backendCode,
currentContent = await fs.readFile(filePath, 'utf-8');
} catch (error) {
throw new FileNotFoundError(
`Failed to read file: ${fileName}:` + error,
);
}
const modificationPrompt = prompts.generateFileModificationPrompt(
fileName,
currentContent,
backendRequirement,
projectOverview,
backendCode,
);

const messages: MessageInterface[] = [
{ content: modificationPrompt, role: 'system' },
];
const response = await chatSyncWithClocker(
let response;
try {
response = await chatSyncWithClocker(
context,
messages,
'gpt-4o-mini',
{
model: 'gpt-4o-mini',
messages: [{ content: modificationPrompt, role: 'system' }],
},
'generateBackendFile',
this.id,
);

const newContent = formatResponse(response);
if (!newContent) {
throw new FileModificationError(
`Failed to generate content for file: ${fileName}.`,
);
}

await fs.writeFile(filePath, newContent, 'utf-8');
this.logger.log(`Successfully modified ${fileName}`);
} catch (error) {
throw error;
throw new ModelUnavailableError('Model Unavailable:' + error);
}
const newContent = formatResponse(response);

await fs.writeFile(filePath, newContent, 'utf-8');

this.logger.log(`Successfully modified ${fileName}`);
}

return {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,11 @@ import { BuilderContext } from 'src/build-system/context';
import { generateBackendOverviewPrompt } from './prompt';
import { Logger } from '@nestjs/common';
import { removeCodeBlockFences } from 'src/build-system/utils/strings';
import { chatSyncWithClocker } from 'src/build-system/utils/handler-helper';
import { MessageInterface } from 'src/common/model-provider/types';
import {
MissingConfigurationError,
ModelUnavailableError,
ResponseParsingError,
} from 'src/build-system/errors';
import { chatSyncWithClocker } from 'src/build-system/utils/handler-helper';

type BackendRequirementResult = {
overview: string;
Expand Down Expand Up @@ -68,27 +66,17 @@ export class BackendRequirementHandler
let backendOverview: string;

try {
const messages: MessageInterface[] = [
{ content: overviewPrompt, role: 'system' },
];
backendOverview = await chatSyncWithClocker(
context,
messages,
'gpt-4o-mini',
{
model: 'gpt-4o-mini',
messages: [{ content: overviewPrompt, role: 'system' }],
},
'generateBackendOverviewPrompt',
this.id,
);

if (!backendOverview) {
throw new ModelUnavailableError(
'The model did not respond within the expected time.',
);
}
if (backendOverview.trim() === '') {
throw new ResponseParsingError('Generated backend overview is empty.');
}
} catch (error) {
throw error;
throw new ModelUnavailableError('Model is unavailable:' + error);
}

// Return generated data
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,7 @@ import { Logger } from '@nestjs/common';
import { removeCodeBlockFences } from 'src/build-system/utils/strings';
import {
MissingConfigurationError,
ResponseParsingError,
ModelUnavailableError,
TemporaryServiceUnavailableError,
RateLimitExceededError,
} from 'src/build-system/errors';
import { chatSyncWithClocker } from 'src/build-system/utils/handler-helper';
import { MessageInterface } from 'src/common/model-provider/types';
Expand Down Expand Up @@ -41,34 +38,17 @@ export class DatabaseRequirementHandler implements BuildHandler<string> {
let dbRequirementsContent: string;

try {
const messages: MessageInterface[] = [
{ content: prompt, role: 'system' },
];
dbRequirementsContent = await chatSyncWithClocker(
context,
messages,
'gpt-4o-mini',
{
model: 'gpt-4o-mini',
messages: [{ content: prompt, role: 'system' }],
},
'generateDatabaseRequirementPrompt',
this.id,
);

if (!dbRequirementsContent) {
throw new ModelUnavailableError(
'The model did not respond within the expected time.',
);
}

if (dbRequirementsContent.trim() === '') {
throw new ResponseParsingError(
'Generated database requirements content is empty.',
);
}
} catch (error) {
this.logger.error(
'Error during database requirements generation:',
error,
);
throw error; // Propagate error to upper-level handler
throw new ModelUnavailableError('Model Unavailable:' + error);
}

return {
Expand Down
Loading

0 comments on commit 71937dd

Please sign in to comment.