data_for_seo/api/ai_optimization/
provider.rs1use super::{
4 AiOptimizationApiLlmResponses, AiOptimizationApiLlmScraper,
5 AiOptimizationApiPerplexityLlmResponses,
6};
7use crate::DataForSeoClient;
8
9pub struct AiOptimizationApiChatGpt<'a> {
13 pub(crate) client: &'a DataForSeoClient,
14}
15
16impl AiOptimizationApiChatGpt<'_> {
17 pub fn llm_responses(&self) -> AiOptimizationApiLlmResponses<'_> {
19 AiOptimizationApiLlmResponses {
20 client: self.client,
21 provider: "chat_gpt",
22 }
23 }
24
25 pub fn llm_scraper(&self) -> AiOptimizationApiLlmScraper<'_> {
27 AiOptimizationApiLlmScraper {
28 client: self.client,
29 provider: "chat_gpt",
30 }
31 }
32}
33
34pub struct AiOptimizationApiClaude<'a> {
38 pub(crate) client: &'a DataForSeoClient,
39}
40
41impl AiOptimizationApiClaude<'_> {
42 pub fn llm_responses(&self) -> AiOptimizationApiLlmResponses<'_> {
44 AiOptimizationApiLlmResponses {
45 client: self.client,
46 provider: "claude",
47 }
48 }
49}
50
51pub struct AiOptimizationApiGemini<'a> {
55 pub(crate) client: &'a DataForSeoClient,
56}
57
58impl AiOptimizationApiGemini<'_> {
59 pub fn llm_responses(&self) -> AiOptimizationApiLlmResponses<'_> {
61 AiOptimizationApiLlmResponses {
62 client: self.client,
63 provider: "gemini",
64 }
65 }
66
67 pub fn llm_scraper(&self) -> AiOptimizationApiLlmScraper<'_> {
69 AiOptimizationApiLlmScraper {
70 client: self.client,
71 provider: "gemini",
72 }
73 }
74}
75
76pub struct AiOptimizationApiPerplexity<'a> {
80 pub(crate) client: &'a DataForSeoClient,
81}
82
83impl AiOptimizationApiPerplexity<'_> {
84 pub fn llm_responses(&self) -> AiOptimizationApiPerplexityLlmResponses<'_> {
86 AiOptimizationApiPerplexityLlmResponses {
87 client: self.client,
88 }
89 }
90}