Spaces:
Runtime error
Runtime error
| import datetime | |
| import requests | |
| from anthropic import Anthropic, AsyncAnthropic | |
| from dotenv import load_dotenv | |
| from langsmith.run_helpers import traceable | |
| from langsmith.run_trees import RunTree | |
| from claude_space.settings import settings | |
| load_dotenv() | |
| class AnthropicCustom: | |
| def __init__( | |
| self, | |
| api_key, | |
| model, | |
| run_tree: RunTree, | |
| max_tokens=1000, | |
| prompt="", | |
| ): | |
| self.api_key = api_key | |
| self.model = model | |
| self.max_tokens = max_tokens | |
| self.prompt = prompt | |
| self.run_tree = run_tree | |
| def get_anthropic_response(self): | |
| syncClient = Anthropic(api_key=self.api_key, timeout=5) | |
| response = syncClient.completions.create( | |
| prompt=self.prompt, | |
| model=self.model, | |
| max_tokens_to_sample=self.max_tokens, | |
| ) | |
| self.final_response = response.completion | |
| return response.completion | |
| async def get_anthropic_response_async(self): | |
| asyncClient = AsyncAnthropic(api_key=self.api_key, timeout=60) | |
| self.final_response = "" | |
| try: | |
| async for line in await asyncClient.completions.create( | |
| prompt=self.prompt, | |
| model=self.model, | |
| max_tokens_to_sample=self.max_tokens, | |
| stream=True, | |
| ): | |
| self.final_response += line.completion | |
| yield line.completion | |
| finally: | |
| self.get_final_response() | |
| def get_final_response(self): | |
| requests.post( | |
| url=f"{settings.LANGCHAIN_ENDPOINT}/runs", | |
| json={ | |
| "name": "Anthropic", | |
| "outputs": {"text": self.final_response}, | |
| "run_type": "chain", | |
| "inputs": {"text": self.prompt}, | |
| "start_time": datetime.datetime.utcnow().isoformat(), | |
| "end_time": datetime.datetime.utcnow().isoformat(), | |
| "tags": [self.model, self.max_tokens], | |
| "parent_run_id": str(self.run_tree.id), | |
| "session_name": settings.LANGCHAIN_PROJECT, | |
| }, | |
| headers={ | |
| "x-api-key": settings.LANGCHAIN_API_KEY, | |
| }, | |
| ) | |
| def __str__(self): | |
| return self.final_response | |
| def __repr__(self): | |
| return self.final_response | |
| def __iter__(self): | |
| return iter(self.final_response) | |