Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 16 additions & 3 deletions backend/src/database/repositories/memberRepository.ts
Original file line number Diff line number Diff line change
Expand Up @@ -253,9 +253,16 @@ class MemberRepository {

const totalCount = await options.database.sequelize.query(
`
WITH top_candidates AS (
SELECT "memberId", "toMergeId", similarity, "activityEstimate"
FROM "memberToMerge"
WHERE similarity IS NOT NULL
ORDER BY similarity DESC, "activityEstimate" DESC
LIMIT 5000
)
Comment on lines +256 to +262
SELECT
COUNT(*) AS count
FROM "memberToMerge" mtm
FROM top_candidates mtm
${membersJoin}
WHERE EXISTS (
SELECT 1 FROM "memberSegmentsAgg" ms
Expand Down Expand Up @@ -364,6 +371,13 @@ class MemberRepository {

const mems = await options.database.sequelize.query(
`
WITH top_candidates AS (
SELECT "memberId", "toMergeId", similarity, "activityEstimate"
FROM "memberToMerge"
WHERE similarity IS NOT NULL
ORDER BY similarity DESC, "activityEstimate" DESC
LIMIT 5000
)
Comment on lines +374 to +380
SELECT
mtm."memberId" AS id,
mtm."toMergeId",
Expand All @@ -373,7 +387,7 @@ class MemberRepository {
m.attributes->'avatarUrl'->>'default' as "primaryAvatarUrl",
m2."displayName" as "toMergeDisplayName",
m2.attributes->'avatarUrl'->>'default' as "toMergeAvatarUrl"
FROM "memberToMerge" mtm
FROM top_candidates mtm
JOIN members m ON m.id = mtm."memberId"
JOIN members m2 ON m2.id = mtm."toMergeId"
WHERE EXISTS (
Expand All @@ -384,7 +398,6 @@ class MemberRepository {
SELECT 1 FROM "memberSegmentsAgg" ms2
WHERE ms2."memberId" = mtm."toMergeId" AND ms2."segmentId" IN (:segmentIds)
)
AND mtm.similarity IS NOT NULL
${memberFilter}
${similarityFilter}
${displayNameFilter}
Expand Down
1 change: 1 addition & 0 deletions services/apps/merge_suggestions_worker/src/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@ export interface IProcessMergeOrganizationSuggestionsWithLLM {
export interface IProcessMergeMemberSuggestionsWithLLM {
similarity: ISimilarityFilter
tenantId: string
modelId?: string
}

export interface ISimilarMemberOpensearchResult {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { continueAsNew, proxyActivities } from '@temporalio/workflow'

import { LLMSuggestionVerdictType, MemberMergeSuggestionTable } from '@crowd/types'
import { LLMSuggestionVerdictType, LlmModelType, MemberMergeSuggestionTable } from '@crowd/types'

import * as commonActivities from '../activities/common'
import * as memberActivities from '../activities/memberMergeSuggestions'
Expand All @@ -24,7 +24,7 @@ export async function mergeMembersWithLLM(
): Promise<void> {
const SUGGESTIONS_PER_RUN = 10
const REGION = 'us-east-1'
const MODEL_ID = 'us.anthropic.claude-sonnet-4-20250514-v1:0'
const MODEL_ID = args.modelId ?? LlmModelType.CLAUDE_SONNET_4
const MODEL_ARGS = {
max_tokens: 2000,
anthropic_version: 'bedrock-2023-05-31',
Expand Down
Loading