Ignore non-real-estate sales in TG leads
This commit is contained in:
@@ -201,6 +201,7 @@ func (c *classifier) classify(ctx context.Context, msg pendingMessage) (json.Raw
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
systemPrompt = promptWithVerticalGuard(msg.Vertical, systemPrompt)
|
||||
|
||||
responseFormat, _ := json.Marshal(responseFmt{Type: "json_object"})
|
||||
payload := aiservice.ChatInput{
|
||||
@@ -403,6 +404,16 @@ func defaultPrompt(vertical string) string {
|
||||
return defaultREPrompt
|
||||
}
|
||||
|
||||
func promptWithVerticalGuard(vertical, prompt string) string {
|
||||
if vertical == verticalHR {
|
||||
return prompt
|
||||
}
|
||||
if strings.Contains(prompt, realEstateOnlyGuard) {
|
||||
return prompt
|
||||
}
|
||||
return strings.TrimSpace(prompt) + "\n\n" + realEstateOnlyGuard
|
||||
}
|
||||
|
||||
func loadConfig() config {
|
||||
return config{
|
||||
PostgresUser: env("POSTGRES_USER", "parser"),
|
||||
@@ -466,6 +477,8 @@ func envBool(key string, fallback bool) bool {
|
||||
|
||||
const defaultREPrompt = `Ты — аналитик объявлений о недвижимости. Тебе дают текст из Telegram-канала.
|
||||
Определи, является ли сообщение реальным объявлением о покупке, продаже или аренде недвижимости.
|
||||
Учитывай только сделки с недвижимостью: квартиры, дома, апартаменты, участки, коммерческие помещения и другие объекты недвижимости.
|
||||
Любые продажи или заявки по стройматериалам, мебели, бытовой/строительной технике, автомобилям, услугам, оборудованию и прочим товарам не являются лидами недвижимости — для них is_listing=false.
|
||||
Отвечай строго валидным JSON без markdown:
|
||||
{
|
||||
"is_listing": boolean,
|
||||
@@ -484,6 +497,9 @@ const defaultREPrompt = `Ты — аналитик объявлений о не
|
||||
}
|
||||
summary всегда по-русски, confidence в диапазоне 0..1.`
|
||||
|
||||
const realEstateOnlyGuard = `Жёсткое правило для недвижимости: учитывай только сделки с недвижимостью.
|
||||
Если сообщение продаёт или покупает стройматериалы, мебель, бытовую/строительную технику, автомобили, услуги, оборудование или любые другие товары/работы не по недвижимости — это НЕ лид недвижимости, верни is_listing=false.`
|
||||
|
||||
const defaultHRPrompt = `Ты — аналитик HR-объявлений. Тебе дают текст из Telegram-канала.
|
||||
Определи, относится ли сообщение к рынку труда: вакансия, резюме или короткий HR-контакт.
|
||||
Отвечай строго валидным JSON без markdown:
|
||||
|
||||
@@ -1875,6 +1875,8 @@ func envBool(key string, fallback bool) bool {
|
||||
|
||||
const defaultREPrompt = `Ты — аналитик объявлений о недвижимости. Тебе дают текст из Telegram-канала.
|
||||
Определи, является ли сообщение реальным объявлением о покупке, продаже или аренде недвижимости.
|
||||
Учитывай только сделки с недвижимостью: квартиры, дома, апартаменты, участки, коммерческие помещения и другие объекты недвижимости.
|
||||
Любые продажи или заявки по стройматериалам, мебели, бытовой/строительной технике, автомобилям, услугам, оборудованию и прочим товарам не являются лидами недвижимости — для них is_listing=false.
|
||||
Отвечай строго валидным JSON без markdown:
|
||||
{
|
||||
"is_listing": boolean,
|
||||
|
||||
Reference in New Issue
Block a user