Skip to content

Commit

Permalink
changes post main rebase
Browse files Browse the repository at this point in the history
  • Loading branch information
atierian committed Oct 8, 2024
1 parent aa901f6 commit 2f9efc2
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 18 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -87,11 +87,12 @@ export function response(ctx) {
exports[`ConversationTransformer valid schemas should transform conversation route with inference configuration 3`] = `
"export function request(ctx) {
const { authFilter } = ctx.stash;
const { conversationId } = ctx.args;
const query = {
expression: 'id = :id',
expressionValues: util.dynamodb.toMapValues({
':id': ctx.args.conversationId,
':id': conversationId,
}),
};
Expand Down Expand Up @@ -126,7 +127,7 @@ export function request(ctx) {
const args = ctx.stash.transformedArgs ?? ctx.args;
const defaultValues = ctx.stash.defaultValues ?? {};
const message = {
__typename: 'ConversationMessagepirateChat',
__typename: 'ConversationMessagePirateChat',
role: 'user',
...args,
...defaultValues,
Expand All @@ -153,7 +154,7 @@ export function request(ctx) {
const { args, request } = ctx;
const { graphqlApiEndpoint } = ctx.stash;
const selectionSet = 'id conversationId content { image { format source { bytes }} text toolUse { toolUseId name input } toolResult { status toolUseId content { json text image { format source { bytes }} document { format name source { bytes }} }}} role owner createdAt updatedAt';
const responseMutation = {
Expand Down Expand Up @@ -309,11 +310,12 @@ export function response(ctx) {
exports[`ConversationTransformer valid schemas should transform conversation route with model query tool 3`] = `
"export function request(ctx) {
const { authFilter } = ctx.stash;
const { conversationId } = ctx.args;
const query = {
expression: 'id = :id',
expressionValues: util.dynamodb.toMapValues({
':id': ctx.args.conversationId,
':id': conversationId,
}),
};
Expand Down Expand Up @@ -348,7 +350,7 @@ export function request(ctx) {
const args = ctx.stash.transformedArgs ?? ctx.args;
const defaultValues = ctx.stash.defaultValues ?? {};
const message = {
__typename: 'ConversationMessagepirateChat',
__typename: 'ConversationMessagePirateChat',
role: 'user',
...args,
...defaultValues,
Expand Down Expand Up @@ -387,7 +389,7 @@ export function request(ctx) {
const modelConfiguration = {
modelId: 'anthropic.claude-3-haiku-20240307-v1:0',
systemPrompt: "You are a helpful chatbot. Answer questions to the best of your ability.",
};
const clientTools = args.toolConfiguration?.tools?.map((tool) => {
Expand Down Expand Up @@ -533,11 +535,12 @@ export function response(ctx) {
exports[`ConversationTransformer valid schemas should transform conversation route with model query tool including relationships 3`] = `
"export function request(ctx) {
const { authFilter } = ctx.stash;
const { conversationId } = ctx.args;
const query = {
expression: 'id = :id',
expressionValues: util.dynamodb.toMapValues({
':id': ctx.args.conversationId,
':id': conversationId,
}),
};
Expand Down Expand Up @@ -572,7 +575,7 @@ export function request(ctx) {
const args = ctx.stash.transformedArgs ?? ctx.args;
const defaultValues = ctx.stash.defaultValues ?? {};
const message = {
__typename: 'ConversationMessagepirateChat',
__typename: 'ConversationMessagePirateChat',
role: 'user',
...args,
...defaultValues,
Expand Down Expand Up @@ -611,7 +614,7 @@ export function request(ctx) {
const modelConfiguration = {
modelId: 'anthropic.claude-3-haiku-20240307-v1:0',
systemPrompt: "You are a helpful chatbot. Answer questions to the best of your ability.",
};
const clientTools = args.toolConfiguration?.tools?.map((tool) => {
Expand Down Expand Up @@ -757,11 +760,12 @@ export function response(ctx) {
exports[`ConversationTransformer valid schemas should transform conversation route with query tools 3`] = `
"export function request(ctx) {
const { authFilter } = ctx.stash;
const { conversationId } = ctx.args;
const query = {
expression: 'id = :id',
expressionValues: util.dynamodb.toMapValues({
':id': ctx.args.conversationId,
':id': conversationId,
}),
};
Expand Down Expand Up @@ -796,7 +800,7 @@ export function request(ctx) {
const args = ctx.stash.transformedArgs ?? ctx.args;
const defaultValues = ctx.stash.defaultValues ?? {};
const message = {
__typename: 'ConversationMessagepirateChat',
__typename: 'ConversationMessagePirateChat',
role: 'user',
...args,
...defaultValues,
Expand Down Expand Up @@ -835,7 +839,7 @@ export function request(ctx) {
const modelConfiguration = {
modelId: 'anthropic.claude-3-haiku-20240307-v1:0',
systemPrompt: "You are a helpful chatbot. Answer questions to the best of your ability.",
};
const clientTools = args.toolConfiguration?.tools?.map((tool) => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,5 @@ const verifySessionOwnerMappingTemplate = (name: string, substitute: Record<stri
const replaced = resolver.replace(new RegExp(`\\[\\[${key}\\]\\]`, 'g'), value);
resolver = replaced;
});
const templateName = `Mutation.${name}.verify-session-owner.js`;
return MappingTemplate.s3MappingFunctionCodeFromString(resolver, templateName);
return MappingTemplate.s3MappingFunctionCodeFromString(resolver, name);
};
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,18 @@ import { MappingTemplate } from '@aws-amplify/graphql-transformer-core';
import { MappingTemplateProvider } from '@aws-amplify/graphql-transformer-interfaces';
import fs from 'fs';
import path from 'path';
import { ConversationDirectiveConfiguration } from '../grapqhl-conversation-transformer';
import { toUpper } from 'graphql-transformer-common';

/**
* Creates a mapping template for writing a message to a table in a conversation.
*
* @returns {MappingTemplateProvider} An object containing request and response MappingTemplateProviders.
*/
export const writeMessageToTableMappingTemplate = (fieldName: string): MappingTemplateProvider => {
export const writeMessageToTableMappingTemplate = (config: ConversationDirectiveConfiguration): MappingTemplateProvider => {
const fieldName = config.field.name.value;
const substitutions = {
CONVERSATION_MESSAGE_TYPE_NAME: `ConversationMessage${fieldName}`,
CONVERSATION_MESSAGE_TYPE_NAME: `ConversationMessage${toUpper(fieldName)}`,
};
let resolver = fs.readFileSync(path.join(__dirname, 'write-message-to-table-resolver-fn.template.js'), 'utf8');
Object.entries(substitutions).forEach(([key, value]) => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,10 +55,11 @@ export class ConversationResolverGenerator {
const invokeLambdaFunction = invokeLambdaMappingTemplate(directive);

this.setupMessageTableIndex(ctx, directive);
const initResolverFunction = initMappingTemplate(directive);
const initResolverFunction = initMappingTemplate(ctx);
const authResolverFunction = authMappingTemplate(directive);
const verifySessionOwnerSendMessageResolverFunction = verifySessionOwnerSendMessageMappingTemplate(directive);
const verifySessionOwnerAssistantResponseResolverFunction = verifySessionOwnerAssistantResponseMappingTemplate(directive);
const writeMessageToTableFunction = writeMessageToTableMappingTemplate(directive);

this.createConversationPipelineResolver(
ctx,
Expand All @@ -70,6 +71,7 @@ export class ConversationResolverGenerator {
initResolverFunction,
authResolverFunction,
verifySessionOwnerSendMessageResolverFunction,
writeMessageToTableFunction,
);

this.createAssistantResponseResolver(
Expand Down Expand Up @@ -189,6 +191,7 @@ export class ConversationResolverGenerator {
initResolverFunction: MappingTemplateProvider,
authResolverFunction: MappingTemplateProvider,
verifySessionOwnerResolverFunction: MappingTemplateProvider,
writeMessageToTableFunction: MappingTemplateProvider,
): void {
const resolverResourceId = ResolverResourceIDs.ResolverResourceID(parentName, fieldName);
const runtime = APPSYNC_JS_RUNTIME;
Expand All @@ -210,6 +213,7 @@ export class ConversationResolverGenerator {
initResolverFunction,
authResolverFunction,
verifySessionOwnerResolverFunction,
writeMessageToTableFunction,
);

ctx.resolvers.addResolver(parentName, fieldName, conversationPipelineResolver);
Expand All @@ -229,6 +233,7 @@ export class ConversationResolverGenerator {
initResolverFunction: MappingTemplateProvider,
authResolverFunction: MappingTemplateProvider,
verifySessionOwnerResolverFunction: MappingTemplateProvider,
writeMessageToTableFunction: MappingTemplateProvider,
): void {
// Add init function
resolver.addJsFunctionToSlot('init', initResolverFunction);
Expand All @@ -243,7 +248,6 @@ export class ConversationResolverGenerator {
resolver.addJsFunctionToSlot('verifySessionOwner', verifySessionOwnerResolverFunction, conversationSessionDDBDataSource as any);

// Add writeMessageToTable function
const writeMessageToTableFunction = writeMessageToTableMappingTemplate(directive.field.name.value);
const messageModelName = `ConversationMessage${capitalizedFieldName}`;
const messageModelDDBDataSourceName = getModelDataSourceNameForTypeName(ctx, messageModelName);
const messageDDBDataSource = ctx.api.host.getDataSource(messageModelDDBDataSourceName);
Expand Down

0 comments on commit 2f9efc2

Please sign in to comment.