Skip to content

Commit f93b337

Browse files
Spam Classify -> Spam Conversation, Spam Document
1 parent e9eff30 commit f93b337

File tree

5 files changed

+141
-63
lines changed

5 files changed

+141
-63
lines changed

README.md

+44-7
Original file line numberDiff line numberDiff line change
@@ -405,22 +405,22 @@ client.Task.FraudSpamicity(mirage.RequestContext{}, mirage.FraudSpamicityRequest
405405
}
406406
```
407407

408-
#### ➡️ Spam Classify
408+
#### ➡️ Spam Conversation
409409

410-
* **Method:** `client.Task.SpamClassify(ctx, data)`
411-
* **Reference:** [Spam Classify](https://docs.mirage-ai.com/references/api/v1/#spam-classify)
410+
* **Method:** `client.Task.SpamConversation(ctx, data)`
411+
* **Reference:** [Spam Conversation](https://docs.mirage-ai.com/references/api/v1/#spam-conversation)
412412

413413
* **Request:**
414414

415415
```go
416-
client.Task.SpamClassify(mirage.RequestContext{}, mirage.SpamClassifyRequest {
417-
Sender: mirage.SpamClassifyRequestSender {
416+
client.Task.SpamConversation(mirage.RequestContext{}, mirage.SpamConversationRequest {
417+
Sender: mirage.SpamConversationRequestSender {
418418
Name: "John Doe",
419419
420420
},
421421

422-
Transcript: []mirage.SpamClassifyRequestTranscript {
423-
mirage.SpamClassifyRequestTranscript {
422+
Transcript: []mirage.SpamConversationRequestTranscript {
423+
mirage.SpamConversationRequestTranscript {
424424
From: "customer",
425425
Origin: "chat",
426426
Text: "Hello, I would like to discuss your services",
@@ -450,6 +450,43 @@ client.Task.SpamClassify(mirage.RequestContext{}, mirage.SpamClassifyRequest {
450450
}
451451
```
452452

453+
#### ➡️ Spam Document
454+
455+
* **Method:** `client.Task.SpamDocument(ctx, data)`
456+
* **Reference:** [Spam Document](https://docs.mirage-ai.com/references/api/v1/#spam-document)
457+
458+
* **Request:**
459+
460+
```go
461+
client.Task.SpamDocument(mirage.RequestContext{}, mirage.SpamDocumentRequest {
462+
Name: "Spammy Domain",
463+
Domain: "spammy-domain.crisp.help",
464+
Title: "Spammy title",
465+
Content: "Spammy content",
466+
})
467+
```
468+
469+
* **Response:**
470+
471+
```json
472+
{
473+
"reason": "processed",
474+
475+
"data": {
476+
"class": "spam",
477+
"confidence": 0.82,
478+
"logprob": -0.10,
479+
480+
"scores": {
481+
"gibberish": 0.0,
482+
"marketing": 0.0,
483+
"regular": 0.0,
484+
"spam": 0.82
485+
}
486+
}
487+
}
488+
```
489+
453490
### Data API
454491

455492
#### ➡️ Context Ingest

examples/task_spam_classify/main.go renamed to examples/task_spam_conversation/main.go

+5-5
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@ func main() {
1919
client := mirage.New(CONFIG_USER_ID, CONFIG_SECRET_KEY)
2020

2121
// Spam classification on email messages
22-
data, err := client.Task.SpamClassify(mirage.RequestContext{}, mirage.SpamClassifyRequest {
23-
Sender: mirage.SpamClassifyRequestSender {
22+
data, err := client.Task.SpamConversation(mirage.RequestContext{}, mirage.SpamConversationRequest {
23+
Sender: mirage.SpamConversationRequestSender {
2424
Name: "John Doe",
2525
2626
},
2727

28-
Transcript: []mirage.SpamClassifyRequestTranscript {
29-
mirage.SpamClassifyRequestTranscript {
28+
Transcript: []mirage.SpamConversationRequestTranscript {
29+
mirage.SpamConversationRequestTranscript {
3030
From: "customer",
3131
Origin: "chat",
3232
Text: "Hello, I would like to discuss your services",
@@ -37,6 +37,6 @@ func main() {
3737
if err != nil {
3838
fmt.Printf("Error: %s", err)
3939
} else {
40-
fmt.Printf("Spam classify results (raw): %s\n", data)
40+
fmt.Printf("Spam conversation results (raw): %s\n", data)
4141
}
4242
}

examples/task_spam_document/main.go

+34
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
// go-mirage-api
2+
//
3+
// Copyright 2025, Valerian Saliou
4+
// Author: Valerian Saliou <[email protected]>
5+
6+
package main
7+
8+
import (
9+
"github.com/mirage-ai-com/go-mirage-api"
10+
"fmt"
11+
)
12+
13+
const (
14+
CONFIG_USER_ID = "ui_xxxxxx"
15+
CONFIG_SECRET_KEY = "sk_xxxxxx"
16+
)
17+
18+
func main() {
19+
client := mirage.New(CONFIG_USER_ID, CONFIG_SECRET_KEY)
20+
21+
// Spam classification on email messages
22+
data, err := client.Task.SpamDocument(mirage.RequestContext{}, mirage.SpamDocumentRequest {
23+
Name: "Spammy Domain",
24+
Domain: "spammy-domain.crisp.help",
25+
Title: "Spammy title",
26+
Content: "Spammy content",
27+
})
28+
29+
if err != nil {
30+
fmt.Printf("Error: %s", err)
31+
} else {
32+
fmt.Printf("Spam document results (raw): %s\n", data)
33+
}
34+
}

task_spam.go

+47-25
Original file line numberDiff line numberDiff line change
@@ -6,59 +6,81 @@
66
package mirage
77

88

9-
// SpamClassifyRequest mapping
10-
type SpamClassifyRequest struct {
11-
Sender SpamClassifyRequestSender `json:"sender"`
12-
Transcript []SpamClassifyRequestTranscript `json:"transcript"`
9+
// SpamConversationRequest mapping
10+
type SpamConversationRequest struct {
11+
Sender SpamConversationRequestSender `json:"sender"`
12+
Transcript []SpamConversationRequestTranscript `json:"transcript"`
1313
}
1414

15-
// SpamClassifyRequestSender mapping
16-
type SpamClassifyRequestSender struct {
15+
// SpamConversationRequestSender mapping
16+
type SpamConversationRequestSender struct {
1717
Name *string `json:"name"`
1818
Email *string `json:"email"`
1919
}
2020

21-
// SpamClassifyRequestTranscript mapping
22-
type SpamClassifyRequestTranscript struct {
21+
// SpamConversationRequestTranscript mapping
22+
type SpamConversationRequestTranscript struct {
2323
From string `json:"from"`
2424
Origin string `json:"origin"`
2525
Text string `json:"text"`
2626
}
2727

28+
// SpamDocumentRequest mapping
29+
type SpamDocumentRequest struct {
30+
Name string `json:"name"`
31+
Domain string `json:"domain"`
32+
Title string `json:"title"`
33+
Content string `json:"content"`
34+
}
35+
2836

29-
// SpamClassifyResponseData mapping
30-
type SpamClassifyResponseData struct {
31-
Data *SpamClassifyResponse `json:"data"`
37+
// SpamGenericResponseData mapping
38+
type SpamGenericResponseData struct {
39+
Data *SpamGenericResponse `json:"data"`
3240
}
3341

34-
// SpamClassifyResponse mapping
35-
type SpamClassifyResponse struct {
36-
Class string `json:"class"`
37-
Confidence float32 `json:"confidence"`
38-
LogProb float32 `json:"logprob"`
39-
Scores SpamClassifyResponseScores `json:"scores"`
42+
// SpamGenericResponse mapping
43+
type SpamGenericResponse struct {
44+
Class string `json:"class"`
45+
Confidence float32 `json:"confidence"`
46+
LogProb float32 `json:"logprob"`
47+
Scores SpamGenericResponseScores `json:"scores"`
4048
}
4149

42-
// SpamClassifyResponseScores mapping
43-
type SpamClassifyResponseScores struct {
50+
// SpamGenericResponseScores mapping
51+
type SpamGenericResponseScores struct {
4452
Gibberish float32 `json:"gibberish"`
4553
Marketing float32 `json:"marketing"`
4654
Regular float32 `json:"regular"`
4755
Spam float32 `json:"spam"`
4856
}
4957

5058

51-
// String returns the string representation of SpamClassifyResponse
52-
func (instance SpamClassifyResponse) String() string {
59+
// String returns the string representation of SpamGenericResponse
60+
func (instance SpamGenericResponse) String() string {
5361
return Stringify(instance)
5462
}
5563

5664

57-
// SpamClassify spam check classification on spammy emails using a sender name, sender email and transcript.
58-
func (service *TaskService) SpamClassify(ctx RequestContext, data SpamClassifyRequest) (*SpamClassifyResponse, error) {
59-
req, _ := service.client.NewRequest("POST", "task/spam/classify", data, ctx)
65+
// SpamConversation spam check classification for conversations on spammy emails using a sender name, sender email and transcript.
66+
func (service *TaskService) SpamConversation(ctx RequestContext, data SpamConversationRequest) (*SpamGenericResponse, error) {
67+
req, _ := service.client.NewRequest("POST", "task/spam/conversation", data, ctx)
68+
69+
result := new(SpamGenericResponseData)
70+
_, err := service.client.Do(req, result)
71+
if err != nil {
72+
return nil, err
73+
}
74+
75+
return result.Data, err
76+
}
77+
78+
79+
// SpamDocument spam check classification for documents on spammy documents using a title, content, author name and author domain.
80+
func (service *TaskService) SpamDocument(ctx RequestContext, data SpamDocumentRequest) (*SpamGenericResponse, error) {
81+
req, _ := service.client.NewRequest("POST", "task/spam/document", data, ctx)
6082

61-
result := new(SpamClassifyResponseData)
83+
result := new(SpamGenericResponseData)
6284
_, err := service.client.Do(req, result)
6385
if err != nil {
6486
return nil, err

task_summarize.go

+11-26
Original file line numberDiff line numberDiff line change
@@ -40,43 +40,28 @@ type SummarizeConversationRequestTranscript struct {
4040
}
4141

4242

43-
// SummarizeParagraphsResponseData mapping
44-
type SummarizeParagraphsResponseData struct {
45-
Data *SummarizeParagraphsResponse `json:"data"`
43+
// SummarizeGenericResponseData mapping
44+
type SummarizeGenericResponseData struct {
45+
Data *SummarizeGenericResponse `json:"data"`
4646
}
4747

48-
// SummarizeParagraphsResponse mapping
49-
type SummarizeParagraphsResponse struct {
48+
// SummarizeGenericResponse mapping
49+
type SummarizeGenericResponse struct {
5050
Summary string `json:"summary"`
5151
}
5252

53-
// SummarizeConversationResponseData mapping
54-
type SummarizeConversationResponseData struct {
55-
Data *SummarizeConversationResponse `json:"data"`
56-
}
57-
58-
// SummarizeConversationResponse mapping
59-
type SummarizeConversationResponse struct {
60-
Summary string `json:"summary"`
61-
}
62-
63-
64-
// String returns the string representation of SummarizeParagraphsResponse
65-
func (instance SummarizeParagraphsResponse) String() string {
66-
return Stringify(instance)
67-
}
6853

69-
// String returns the string representation of SummarizeConversationResponse
70-
func (instance SummarizeConversationResponse) String() string {
54+
// String returns the string representation of SummarizeGenericResponse
55+
func (instance SummarizeGenericResponse) String() string {
7156
return Stringify(instance)
7257
}
7358

7459

7560
// SummarizeParagraphs summarize given paragraphs.
76-
func (service *TaskService) SummarizeParagraphs(ctx RequestContext, data SummarizeParagraphsRequest) (*SummarizeParagraphsResponse, error) {
61+
func (service *TaskService) SummarizeParagraphs(ctx RequestContext, data SummarizeParagraphsRequest) (*SummarizeGenericResponse, error) {
7762
req, _ := service.client.NewRequest("POST", "task/summarize/paragraphs", data, ctx)
7863

79-
result := new(SummarizeParagraphsResponseData)
64+
result := new(SummarizeGenericResponseData)
8065
_, err := service.client.Do(req, result)
8166
if err != nil {
8267
return nil, err
@@ -87,10 +72,10 @@ func (service *TaskService) SummarizeParagraphs(ctx RequestContext, data Summari
8772

8873

8974
// SummarizeConversation summarize a given conversation, from a list of messages.
90-
func (service *TaskService) SummarizeConversation(ctx RequestContext, data SummarizeConversationRequest) (*SummarizeConversationResponse, error) {
75+
func (service *TaskService) SummarizeConversation(ctx RequestContext, data SummarizeConversationRequest) (*SummarizeGenericResponse, error) {
9176
req, _ := service.client.NewRequest("POST", "task/summarize/conversation", data, ctx)
9277

93-
result := new(SummarizeConversationResponseData)
78+
result := new(SummarizeGenericResponseData)
9479
_, err := service.client.Do(req, result)
9580
if err != nil {
9681
return nil, err

0 commit comments

Comments
 (0)