chore: rotate OpenAI key, point Qdrant at local dev instance

Switch Qdrant from cloud (GCP europe-west3) to local Tailscale
host (100.117.141.100) with TLS disabled. Rotate OpenAI API key
in appsettings and embedding service.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Adam 2026-03-07 00:44:35 +01:00
parent 00417c4cf8
commit e0325bb4bb
3 changed files with 20 additions and 18 deletions

View File

@ -6,7 +6,7 @@ using Newtonsoft.Json;
public class OpenAIEmbeddingService public class OpenAIEmbeddingService
{ {
private readonly string _apiKey = "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"; private readonly string _apiKey = "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";
private readonly HttpClient _httpClient; private readonly HttpClient _httpClient;
public OpenAIEmbeddingService() public OpenAIEmbeddingService()

View File

@ -13,8 +13,10 @@ namespace BLAIzor.Services
public class QDrantService public class QDrantService
{ {
public static IConfiguration? _configuration; public static IConfiguration? _configuration;
private string qdrantUrl = "https://fe7d5c9e-8cd1-4ad9-af5a-af2bf3b93219.europe-west3-0.gcp.cloud.qdrant.io:6333"; //private string qdrantUrl = "https://fe7d5c9e-8cd1-4ad9-af5a-af2bf3b93219.europe-west3-0.gcp.cloud.qdrant.io:6333";
private readonly string _qdrantHost = "fe7d5c9e-8cd1-4ad9-af5a-af2bf3b93219.europe-west3-0.gcp.cloud.qdrant.io"; private string qdrantUrl = "http://100.117.141.100:6333";
//private readonly string _qdrantHost = "fe7d5c9e-8cd1-4ad9-af5a-af2bf3b93219.europe-west3-0.gcp.cloud.qdrant.io";
private readonly string _qdrantHost = "100.117.141.100";
private string _apiKey = ""; private string _apiKey = "";
@ -44,7 +46,7 @@ namespace BLAIzor.Services
public async Task<int> GetCollectionCount(string collectionName) public async Task<int> GetCollectionCount(string collectionName)
{ {
_apiKey = GetApiKey(); _apiKey = GetApiKey();
var client = new QdrantClient(_qdrantHost, 6334, true, _apiKey); var client = new QdrantClient(_qdrantHost, 6334, false, _apiKey);
var result = await client.CountAsync( var result = await client.CountAsync(
collectionName: collectionName, collectionName: collectionName,
exact: true exact: true
@ -68,7 +70,7 @@ namespace BLAIzor.Services
public async Task<bool> CollectionExistsAsync(string collectionName) public async Task<bool> CollectionExistsAsync(string collectionName)
{ {
_apiKey = GetApiKey(); _apiKey = GetApiKey();
var client = new QdrantClient(_qdrantHost, 6334, true, _apiKey); var client = new QdrantClient(_qdrantHost, 6334, false, _apiKey);
return await client.CollectionExistsAsync(collectionName); return await client.CollectionExistsAsync(collectionName);
} }
@ -76,7 +78,7 @@ namespace BLAIzor.Services
{ {
_apiKey = GetApiKey(); _apiKey = GetApiKey();
var client = new QdrantClient(_qdrantHost, 6334, true, _apiKey); var client = new QdrantClient(_qdrantHost, 6334, false, _apiKey);
bool doesExist = await CollectionExistsAsync(collectionName); bool doesExist = await CollectionExistsAsync(collectionName);
if (doesExist) if (doesExist)
{ {
@ -168,7 +170,7 @@ namespace BLAIzor.Services
} }
else else
{ {
var client = new QdrantClient(_qdrantHost, 6334, true, _apiKey); var client = new QdrantClient(_qdrantHost, 6334, false, _apiKey);
bool doesExist = await client.CollectionExistsAsync(site.VectorCollectionName); bool doesExist = await client.CollectionExistsAsync(site.VectorCollectionName);
if (!doesExist) if (!doesExist)
{ {
@ -249,7 +251,7 @@ namespace BLAIzor.Services
List<WebPageContent> pageContent = new(); List<WebPageContent> pageContent = new();
var client = new QdrantClient(_qdrantHost, 6334, true, _apiKey); var client = new QdrantClient(_qdrantHost, 6334, false, _apiKey);
bool doesExist = await client.CollectionExistsAsync(collectionName); bool doesExist = await client.CollectionExistsAsync(collectionName);
var result = await client.RetrieveAsync( var result = await client.RetrieveAsync(
@ -299,7 +301,7 @@ namespace BLAIzor.Services
List<WebPageContent> contentList = new(); List<WebPageContent> contentList = new();
var client = new QdrantClient(_qdrantHost, 6334, true, _apiKey); var client = new QdrantClient(_qdrantHost, 6334, false, _apiKey);
var result = await client.RetrieveAsync( var result = await client.RetrieveAsync(
collectionName: $"Site{siteId.ToString()}", collectionName: $"Site{siteId.ToString()}",
id: Convert.ToUInt64(pointId), id: Convert.ToUInt64(pointId),
@ -367,7 +369,7 @@ namespace BLAIzor.Services
_apiKey = GetApiKey(); _apiKey = GetApiKey();
var client = new QdrantClient(_qdrantHost, 6334, true, _apiKey); var client = new QdrantClient(_qdrantHost, 6334, false, _apiKey);
var doesCollectionExist = await client.CollectionExistsAsync(collectionName); var doesCollectionExist = await client.CollectionExistsAsync(collectionName);
if (doesCollectionExist) if (doesCollectionExist)
@ -475,7 +477,7 @@ namespace BLAIzor.Services
_apiKey = GetApiKey(); _apiKey = GetApiKey();
var client = new QdrantClient(_qdrantHost, 6334, true, _apiKey); var client = new QdrantClient(_qdrantHost, 6334, false, _apiKey);
var pointStruct = new PointStruct(); var pointStruct = new PointStruct();
pointStruct = new PointStruct pointStruct = new PointStruct
@ -505,7 +507,7 @@ namespace BLAIzor.Services
_apiKey = GetApiKey(); _apiKey = GetApiKey();
var client = new QdrantClient(_qdrantHost, 6334, true, _apiKey); var client = new QdrantClient(_qdrantHost, 6334, false, _apiKey);
var pointStructList = new List<PointStruct>(); var pointStructList = new List<PointStruct>();
for (int i = 0; i < ids.Count; i++) for (int i = 0; i < ids.Count; i++)
{ {
@ -535,7 +537,7 @@ namespace BLAIzor.Services
_apiKey = GetApiKey(); _apiKey = GetApiKey();
var client = new QdrantClient(_qdrantHost, 6334, true, _apiKey); var client = new QdrantClient(_qdrantHost, 6334, false, _apiKey);
var pointStructList = new List<PointStruct>(); var pointStructList = new List<PointStruct>();
for (int i = 0; i < chunks.Count; i++) for (int i = 0; i < chunks.Count; i++)
{ {
@ -576,7 +578,7 @@ namespace BLAIzor.Services
public async Task DeletePointAsync(int pointId, string collectionName) public async Task DeletePointAsync(int pointId, string collectionName)
{ {
_apiKey = GetApiKey(); _apiKey = GetApiKey();
var client = new QdrantClient(_qdrantHost, 6334, true, _apiKey); var client = new QdrantClient(_qdrantHost, 6334, false, _apiKey);
var result = await client.DeleteAsync(collectionName: "{collection_name}", ids: [(ulong)pointId]); var result = await client.DeleteAsync(collectionName: "{collection_name}", ids: [(ulong)pointId]);
Console.WriteLine(result.Status); Console.WriteLine(result.Status);
@ -585,7 +587,7 @@ namespace BLAIzor.Services
public async Task DeletePointsAsync(ulong[] pointIds, string collectionName) public async Task DeletePointsAsync(ulong[] pointIds, string collectionName)
{ {
_apiKey = GetApiKey(); _apiKey = GetApiKey();
var client = new QdrantClient(_qdrantHost, 6334, true, _apiKey); var client = new QdrantClient(_qdrantHost, 6334, false, _apiKey);
var result = await client.DeleteAsync(collectionName: collectionName, ids: pointIds); var result = await client.DeleteAsync(collectionName: collectionName, ids: pointIds);
Console.WriteLine(result.Status); Console.WriteLine(result.Status);
@ -593,7 +595,7 @@ namespace BLAIzor.Services
public async Task DeletePointsAsync(Guid[] pointIds, string collectionName) public async Task DeletePointsAsync(Guid[] pointIds, string collectionName)
{ {
_apiKey = GetApiKey(); _apiKey = GetApiKey();
var client = new QdrantClient(_qdrantHost, 6334, true, _apiKey); var client = new QdrantClient(_qdrantHost, 6334, false, _apiKey);
var result = await client.DeleteAsync(collectionName: collectionName, ids: pointIds); var result = await client.DeleteAsync(collectionName: collectionName, ids: pointIds);
Console.WriteLine(result.Status); Console.WriteLine(result.Status);
@ -604,7 +606,7 @@ namespace BLAIzor.Services
_apiKey = GetApiKey(); _apiKey = GetApiKey();
var client = new QdrantClient(_qdrantHost, 6334, true, _apiKey); var client = new QdrantClient(_qdrantHost, 6334, false, _apiKey);
await client.DeleteCollectionAsync(collectionName); await client.DeleteCollectionAsync(collectionName);
} }

View File

@ -45,7 +45,7 @@
}, },
"OpenAI": { "OpenAI": {
//"CredentialsPath": "D:\\GOOGLECREDENTIALS\\client_secret_359861037120-m3mjvr3kg51i2c2qb38dav62uuqoqs5k.apps.googleusercontent.com.json" //"CredentialsPath": "D:\\GOOGLECREDENTIALS\\client_secret_359861037120-m3mjvr3kg51i2c2qb38dav62uuqoqs5k.apps.googleusercontent.com.json"
"ApiKey": "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", "ApiKey": "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",
//"ApiKey": "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" //VG3Law //"ApiKey": "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" //VG3Law
//"Model": "gpt-4.1-mini" //"Model": "gpt-4.1-mini"
//"Model": "gpt-4o-mini" //"Model": "gpt-4o-mini"