valyu-js 1.0.6 → 1.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +30 -22
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +30 -22
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -36,7 +36,7 @@ declare class Valyu {
|
|
|
36
36
|
private headers;
|
|
37
37
|
constructor(apiKey?: string, baseUrl?: string);
|
|
38
38
|
context(query: string, options?: {
|
|
39
|
-
searchType
|
|
39
|
+
searchType?: string;
|
|
40
40
|
maxNumResults?: number;
|
|
41
41
|
queryRewrite?: boolean;
|
|
42
42
|
similarityThreshold?: number;
|
package/dist/index.d.ts
CHANGED
|
@@ -36,7 +36,7 @@ declare class Valyu {
|
|
|
36
36
|
private headers;
|
|
37
37
|
constructor(apiKey?: string, baseUrl?: string);
|
|
38
38
|
context(query: string, options?: {
|
|
39
|
-
searchType
|
|
39
|
+
searchType?: string;
|
|
40
40
|
maxNumResults?: number;
|
|
41
41
|
queryRewrite?: boolean;
|
|
42
42
|
similarityThreshold?: number;
|
package/dist/index.js
CHANGED
|
@@ -48,32 +48,40 @@ var Valyu = class {
|
|
|
48
48
|
"x-api-key": apiKey
|
|
49
49
|
};
|
|
50
50
|
}
|
|
51
|
-
async context(query, options = {
|
|
52
|
-
searchType: "all",
|
|
53
|
-
maxNumResults: 10,
|
|
54
|
-
queryRewrite: true,
|
|
55
|
-
similarityThreshold: 0.4,
|
|
56
|
-
maxPrice: 1
|
|
57
|
-
}) {
|
|
51
|
+
async context(query, options = {}) {
|
|
58
52
|
try {
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
53
|
+
const defaultSearchType = "all";
|
|
54
|
+
const defaultMaxNumResults = 10;
|
|
55
|
+
const defaultQueryRewrite = true;
|
|
56
|
+
const defaultSimilarityThreshold = 0.4;
|
|
57
|
+
const defaultMaxPrice = 1;
|
|
58
|
+
let finalSearchType = defaultSearchType;
|
|
59
|
+
const providedSearchTypeString = options.searchType?.toLowerCase();
|
|
60
|
+
if (providedSearchTypeString === "web" || providedSearchTypeString === "proprietary" || providedSearchTypeString === "all") {
|
|
61
|
+
finalSearchType = providedSearchTypeString;
|
|
62
|
+
} else if (options.searchType !== void 0) {
|
|
63
|
+
return {
|
|
64
|
+
success: false,
|
|
65
|
+
error: "Invalid searchType provided. Must be one of: all, web, proprietary",
|
|
66
|
+
tx_id: null,
|
|
67
|
+
query,
|
|
68
|
+
results: [],
|
|
69
|
+
results_by_source: { web: 0, proprietary: 0 },
|
|
70
|
+
total_deduction_pcm: 0,
|
|
71
|
+
total_deduction_dollars: 0,
|
|
72
|
+
total_characters: 0
|
|
73
|
+
};
|
|
74
|
+
}
|
|
67
75
|
const payload = {
|
|
68
76
|
query,
|
|
69
|
-
search_type:
|
|
70
|
-
max_num_results: maxNumResults,
|
|
71
|
-
query_rewrite: queryRewrite,
|
|
72
|
-
similarity_threshold: similarityThreshold,
|
|
73
|
-
max_price: maxPrice
|
|
77
|
+
search_type: finalSearchType,
|
|
78
|
+
max_num_results: options.maxNumResults ?? defaultMaxNumResults,
|
|
79
|
+
query_rewrite: options.queryRewrite ?? defaultQueryRewrite,
|
|
80
|
+
similarity_threshold: options.similarityThreshold ?? defaultSimilarityThreshold,
|
|
81
|
+
max_price: options.maxPrice ?? defaultMaxPrice
|
|
74
82
|
};
|
|
75
|
-
if (dataSources !== void 0) {
|
|
76
|
-
payload.data_sources = dataSources;
|
|
83
|
+
if (options.dataSources !== void 0) {
|
|
84
|
+
payload.data_sources = options.dataSources;
|
|
77
85
|
}
|
|
78
86
|
const response = await import_axios.default.post(
|
|
79
87
|
`${this.baseUrl}/knowledge`,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import axios from 'axios';\nimport { SearchResponse, SearchType, FeedbackSentiment, FeedbackResponse } from './types';\n\nexport class Valyu {\n private baseUrl: string;\n private headers: Record<string, string>;\n\n constructor(apiKey?: string, baseUrl: string = \"https://api.valyu.network/v1\") {\n if (!apiKey) {\n apiKey = process.env.VALYU_API_KEY;\n if (!apiKey) {\n throw new Error(\"VALYU_API_KEY is not set\");\n }\n }\n this.baseUrl = baseUrl;\n this.headers = {\n \"Content-Type\": \"application/json\",\n \"x-api-key\": apiKey\n };\n }\n\n async context(\n query: string,\n options: {\n searchType
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import axios from 'axios';\nimport { SearchResponse, SearchType, FeedbackSentiment, FeedbackResponse } from './types';\n\nexport class Valyu {\n private baseUrl: string;\n private headers: Record<string, string>;\n\n constructor(apiKey?: string, baseUrl: string = \"https://api.valyu.network/v1\") {\n if (!apiKey) {\n apiKey = process.env.VALYU_API_KEY;\n if (!apiKey) {\n throw new Error(\"VALYU_API_KEY is not set\");\n }\n }\n this.baseUrl = baseUrl;\n this.headers = {\n \"Content-Type\": \"application/json\",\n \"x-api-key\": apiKey\n };\n }\n\n async context(\n query: string,\n options: {\n searchType?: string;\n maxNumResults?: number;\n queryRewrite?: boolean;\n similarityThreshold?: number;\n maxPrice?: number;\n dataSources?: string[];\n } = {}\n ): Promise<SearchResponse> {\n try {\n const defaultSearchType: SearchType = \"all\";\n const defaultMaxNumResults = 10;\n const defaultQueryRewrite = true;\n const defaultSimilarityThreshold = 0.4;\n const defaultMaxPrice = 1;\n\n let finalSearchType: SearchType = defaultSearchType;\n const providedSearchTypeString = options.searchType?.toLowerCase();\n\n if (providedSearchTypeString === \"web\" || providedSearchTypeString === \"proprietary\" || providedSearchTypeString === \"all\") {\n finalSearchType = providedSearchTypeString as SearchType;\n } else if (options.searchType !== undefined) {\n return {\n success: false,\n error: \"Invalid searchType provided. Must be one of: all, web, proprietary\",\n tx_id: null,\n query,\n results: [],\n results_by_source: { web: 0, proprietary: 0 },\n total_deduction_pcm: 0.0,\n total_deduction_dollars: 0.0,\n total_characters: 0\n };\n }\n\n const payload: Record<string, any> = {\n query,\n search_type: finalSearchType,\n max_num_results: options.maxNumResults ?? defaultMaxNumResults,\n query_rewrite: options.queryRewrite ?? defaultQueryRewrite,\n similarity_threshold: options.similarityThreshold ?? defaultSimilarityThreshold,\n max_price: options.maxPrice ?? defaultMaxPrice,\n };\n\n if (options.dataSources !== undefined) {\n payload.data_sources = options.dataSources;\n }\n\n const response = await axios.post(\n `${this.baseUrl}/knowledge`,\n payload,\n { headers: this.headers }\n );\n\n if (!response.status || response.status < 200 || response.status >= 300) {\n return {\n success: false,\n error: response.data?.error,\n tx_id: null,\n query,\n results: [],\n results_by_source: { web: 0, proprietary: 0 },\n total_deduction_pcm: 0.0,\n total_deduction_dollars: 0.0,\n total_characters: 0\n };\n }\n\n return response.data;\n } catch (e: any) {\n return {\n success: false,\n error: e.message,\n tx_id: null,\n query,\n results: [],\n results_by_source: { web: 0, proprietary: 0 },\n total_deduction_pcm: 0.0,\n total_deduction_dollars: 0.0,\n total_characters: 0\n };\n }\n }\n\n async feedback({\n tx_id,\n feedback,\n sentiment\n }: {\n tx_id: string;\n feedback: string;\n sentiment: FeedbackSentiment;\n }): Promise<FeedbackResponse> {\n try {\n const payload = {\n tx_id,\n feedback,\n sentiment\n };\n\n const response = await axios.post(\n `${this.baseUrl}/feedback`,\n payload,\n { headers: this.headers }\n );\n\n if (!response.status || response.status < 200 || response.status >= 300) {\n return {\n success: false,\n error: response.data?.error\n };\n }\n\n return response.data;\n } catch (e: any) {\n return {\n success: false,\n error: e.message\n };\n }\n }\n}\n\nexport type { \n SearchResponse, \n SearchType, \n FeedbackSentiment, \n FeedbackResponse \n} from './types'; "],"mappings":"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","names":["axios"]}
|
package/dist/index.mjs
CHANGED
|
@@ -14,32 +14,40 @@ var Valyu = class {
|
|
|
14
14
|
"x-api-key": apiKey
|
|
15
15
|
};
|
|
16
16
|
}
|
|
17
|
-
async context(query, options = {
|
|
18
|
-
searchType: "all",
|
|
19
|
-
maxNumResults: 10,
|
|
20
|
-
queryRewrite: true,
|
|
21
|
-
similarityThreshold: 0.4,
|
|
22
|
-
maxPrice: 1
|
|
23
|
-
}) {
|
|
17
|
+
async context(query, options = {}) {
|
|
24
18
|
try {
|
|
25
|
-
const
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
19
|
+
const defaultSearchType = "all";
|
|
20
|
+
const defaultMaxNumResults = 10;
|
|
21
|
+
const defaultQueryRewrite = true;
|
|
22
|
+
const defaultSimilarityThreshold = 0.4;
|
|
23
|
+
const defaultMaxPrice = 1;
|
|
24
|
+
let finalSearchType = defaultSearchType;
|
|
25
|
+
const providedSearchTypeString = options.searchType?.toLowerCase();
|
|
26
|
+
if (providedSearchTypeString === "web" || providedSearchTypeString === "proprietary" || providedSearchTypeString === "all") {
|
|
27
|
+
finalSearchType = providedSearchTypeString;
|
|
28
|
+
} else if (options.searchType !== void 0) {
|
|
29
|
+
return {
|
|
30
|
+
success: false,
|
|
31
|
+
error: "Invalid searchType provided. Must be one of: all, web, proprietary",
|
|
32
|
+
tx_id: null,
|
|
33
|
+
query,
|
|
34
|
+
results: [],
|
|
35
|
+
results_by_source: { web: 0, proprietary: 0 },
|
|
36
|
+
total_deduction_pcm: 0,
|
|
37
|
+
total_deduction_dollars: 0,
|
|
38
|
+
total_characters: 0
|
|
39
|
+
};
|
|
40
|
+
}
|
|
33
41
|
const payload = {
|
|
34
42
|
query,
|
|
35
|
-
search_type:
|
|
36
|
-
max_num_results: maxNumResults,
|
|
37
|
-
query_rewrite: queryRewrite,
|
|
38
|
-
similarity_threshold: similarityThreshold,
|
|
39
|
-
max_price: maxPrice
|
|
43
|
+
search_type: finalSearchType,
|
|
44
|
+
max_num_results: options.maxNumResults ?? defaultMaxNumResults,
|
|
45
|
+
query_rewrite: options.queryRewrite ?? defaultQueryRewrite,
|
|
46
|
+
similarity_threshold: options.similarityThreshold ?? defaultSimilarityThreshold,
|
|
47
|
+
max_price: options.maxPrice ?? defaultMaxPrice
|
|
40
48
|
};
|
|
41
|
-
if (dataSources !== void 0) {
|
|
42
|
-
payload.data_sources = dataSources;
|
|
49
|
+
if (options.dataSources !== void 0) {
|
|
50
|
+
payload.data_sources = options.dataSources;
|
|
43
51
|
}
|
|
44
52
|
const response = await axios.post(
|
|
45
53
|
`${this.baseUrl}/knowledge`,
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import axios from 'axios';\nimport { SearchResponse, SearchType, FeedbackSentiment, FeedbackResponse } from './types';\n\nexport class Valyu {\n private baseUrl: string;\n private headers: Record<string, string>;\n\n constructor(apiKey?: string, baseUrl: string = \"https://api.valyu.network/v1\") {\n if (!apiKey) {\n apiKey = process.env.VALYU_API_KEY;\n if (!apiKey) {\n throw new Error(\"VALYU_API_KEY is not set\");\n }\n }\n this.baseUrl = baseUrl;\n this.headers = {\n \"Content-Type\": \"application/json\",\n \"x-api-key\": apiKey\n };\n }\n\n async context(\n query: string,\n options: {\n searchType
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import axios from 'axios';\nimport { SearchResponse, SearchType, FeedbackSentiment, FeedbackResponse } from './types';\n\nexport class Valyu {\n private baseUrl: string;\n private headers: Record<string, string>;\n\n constructor(apiKey?: string, baseUrl: string = \"https://api.valyu.network/v1\") {\n if (!apiKey) {\n apiKey = process.env.VALYU_API_KEY;\n if (!apiKey) {\n throw new Error(\"VALYU_API_KEY is not set\");\n }\n }\n this.baseUrl = baseUrl;\n this.headers = {\n \"Content-Type\": \"application/json\",\n \"x-api-key\": apiKey\n };\n }\n\n async context(\n query: string,\n options: {\n searchType?: string;\n maxNumResults?: number;\n queryRewrite?: boolean;\n similarityThreshold?: number;\n maxPrice?: number;\n dataSources?: string[];\n } = {}\n ): Promise<SearchResponse> {\n try {\n const defaultSearchType: SearchType = \"all\";\n const defaultMaxNumResults = 10;\n const defaultQueryRewrite = true;\n const defaultSimilarityThreshold = 0.4;\n const defaultMaxPrice = 1;\n\n let finalSearchType: SearchType = defaultSearchType;\n const providedSearchTypeString = options.searchType?.toLowerCase();\n\n if (providedSearchTypeString === \"web\" || providedSearchTypeString === \"proprietary\" || providedSearchTypeString === \"all\") {\n finalSearchType = providedSearchTypeString as SearchType;\n } else if (options.searchType !== undefined) {\n return {\n success: false,\n error: \"Invalid searchType provided. Must be one of: all, web, proprietary\",\n tx_id: null,\n query,\n results: [],\n results_by_source: { web: 0, proprietary: 0 },\n total_deduction_pcm: 0.0,\n total_deduction_dollars: 0.0,\n total_characters: 0\n };\n }\n\n const payload: Record<string, any> = {\n query,\n search_type: finalSearchType,\n max_num_results: options.maxNumResults ?? defaultMaxNumResults,\n query_rewrite: options.queryRewrite ?? defaultQueryRewrite,\n similarity_threshold: options.similarityThreshold ?? defaultSimilarityThreshold,\n max_price: options.maxPrice ?? defaultMaxPrice,\n };\n\n if (options.dataSources !== undefined) {\n payload.data_sources = options.dataSources;\n }\n\n const response = await axios.post(\n `${this.baseUrl}/knowledge`,\n payload,\n { headers: this.headers }\n );\n\n if (!response.status || response.status < 200 || response.status >= 300) {\n return {\n success: false,\n error: response.data?.error,\n tx_id: null,\n query,\n results: [],\n results_by_source: { web: 0, proprietary: 0 },\n total_deduction_pcm: 0.0,\n total_deduction_dollars: 0.0,\n total_characters: 0\n };\n }\n\n return response.data;\n } catch (e: any) {\n return {\n success: false,\n error: e.message,\n tx_id: null,\n query,\n results: [],\n results_by_source: { web: 0, proprietary: 0 },\n total_deduction_pcm: 0.0,\n total_deduction_dollars: 0.0,\n total_characters: 0\n };\n }\n }\n\n async feedback({\n tx_id,\n feedback,\n sentiment\n }: {\n tx_id: string;\n feedback: string;\n sentiment: FeedbackSentiment;\n }): Promise<FeedbackResponse> {\n try {\n const payload = {\n tx_id,\n feedback,\n sentiment\n };\n\n const response = await axios.post(\n `${this.baseUrl}/feedback`,\n payload,\n { headers: this.headers }\n );\n\n if (!response.status || response.status < 200 || response.status >= 300) {\n return {\n success: false,\n error: response.data?.error\n };\n }\n\n return response.data;\n } catch (e: any) {\n return {\n success: false,\n error: e.message\n };\n }\n }\n}\n\nexport type { \n SearchResponse, \n SearchType, \n FeedbackSentiment, \n FeedbackResponse \n} from './types'; "],"mappings":"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","names":[]}
|