feat : llm prompt for search query

This commit is contained in:
martin legrand
2025-03-19 12:53:34 +01:00
parent 80071fbeaa
commit 70c64bf081
4 changed files with 68 additions and 20 deletions
+25 -5
View File
@@ -21,15 +21,16 @@ class Provider:
"ollama": self.ollama_fn,
"server": self.server_fn,
"openai": self.openai_fn,
"huggingface": self.huggingface_fn
"huggingface": self.huggingface_fn,
"deepseek-api": self.deepseek_fn
}
self.api_key = None
self.unsafe_providers = ["openai"]
self.unsafe_providers = ["openai", "deepseek-api"]
if self.provider_name not in self.available_providers:
raise ValueError(f"Unknown provider: {provider_name}")
if self.provider_name in self.unsafe_providers:
print("Warning: you are using an API provider. You data will be sent to the cloud.")
self.get_api_key(self.provider_name)
self.api_key = self.get_api_key(self.provider_name)
elif self.server != "":
print("Provider", provider_name, "initialized at", self.server)
self.check_address_format(self.server)
@@ -79,6 +80,8 @@ class Provider:
"""
Check if an IP address is online by sending a ping request.
"""
if ip_address == "127.0.0.1":
return True
param = '-n' if platform.system().lower() == 'windows' else '-c'
command = ['ping', param, '1', ip_address]
try:
@@ -164,8 +167,7 @@ class Provider:
"""
Use openai to generate text.
"""
api_key = self.get_api_key("openai")
client = OpenAI(api_key=api_key)
client = OpenAI(api_key=self.api_key)
try:
response = client.chat.completions.create(
model=self.model,
@@ -178,6 +180,24 @@ class Provider:
except Exception as e:
raise Exception(f"OpenAI API error: {str(e)}") from e
def deepseek_fn(self, history, verbose=False):
"""
Use deepseek api to generate text.
"""
client = OpenAI(api_key=self.api_key, base_url="https://api.deepseek.com")
try:
response = client.chat.completions.create(
model="deepseek-chat",
messages=history,
stream=False
)
thought = response.choices[0].message.content
if verbose:
print(thought)
return thought
except Exception as e:
raise Exception(f"Deepseek API error: {str(e)}") from e
def test_fn(self, history, verbose = True):
"""
This function is used to conduct tests.