9x25dillon commited on
Commit
0dfd912
·
verified ·
1 Parent(s): 48099f7

Create adapters/openai_adapter.py

Browse files
Files changed (1) hide show
  1. adapters/openai_adapter.py +15 -12
adapters/openai_adapter.py CHANGED
@@ -1,21 +1,24 @@
1
- import os, httpx
 
 
2
  from .base import BaseModelAdapter
3
 
4
- _OPENAI_KEY = os.getenv("OPENAI_API_KEY", "")
5
-
6
  class OpenAIAdapter(BaseModelAdapter):
 
 
 
 
7
  def __init__(self, model_text="gpt-4o-mini", model_embed="text-embedding-3-small"):
8
  self.model_text = model_text
9
  self.model_embed = model_embed
 
10
 
11
  def generate(self, prompt: str) -> str:
12
- # replace with the current OpenAI responses endpoint you use
13
- # placeholder pseudo-call:
14
- return f"[openai:{self.model_text}] {prompt}"
15
 
16
- def embed_text(self, text: str) -> list[float]:
17
- # placeholder embedding (replace with real HTTP call)
18
- import numpy as np, hashlib
19
- h = hashlib.sha256(text.encode()).digest()
20
- rng = np.random.default_rng(int.from_bytes(h[:8], "little"))
21
- return rng.standard_normal(384).tolist()
 
1
+ # adapters/openai_adapter.py
2
+ import os, hashlib
3
+ from typing import List
4
  from .base import BaseModelAdapter
5
 
 
 
6
  class OpenAIAdapter(BaseModelAdapter):
7
+ """
8
+ Placeholder that returns echo'd text and deterministic pseudo-embeddings.
9
+ Swap with real OpenAI calls later.
10
+ """
11
  def __init__(self, model_text="gpt-4o-mini", model_embed="text-embedding-3-small"):
12
  self.model_text = model_text
13
  self.model_embed = model_embed
14
+ self.dim = int(os.getenv("EMBED_DIM", "384"))
15
 
16
  def generate(self, prompt: str) -> str:
17
+ return f"[{self.model_text}] {prompt.strip()}"
 
 
18
 
19
+ def embed_text(self, text: str) -> List[float]:
20
+ import numpy as np
21
+ h = hashlib.sha256((self.model_embed + "||" + text).encode()).digest()
22
+ seed = int.from_bytes(h[:8], "little")
23
+ rng = np.random.default_rng(seed)
24
+ return rng.standard_normal(self.dim).astype("float32").tolist()