mirror of
https://github.com/OpenHands/OpenHands.git
synced 2025-12-25 21:36:52 +08:00
70 lines
1.8 KiB
Python
70 lines
1.8 KiB
Python
"""Utility functions for LLM configuration in OpenHands CLI."""
|
|
|
|
import os
|
|
from typing import Any
|
|
from openhands.tools.preset import get_default_agent
|
|
from openhands.sdk import LLM
|
|
|
|
def get_llm_metadata(
|
|
model_name: str,
|
|
llm_type: str,
|
|
session_id: str | None = None,
|
|
user_id: str | None = None,
|
|
) -> dict[str, Any]:
|
|
"""
|
|
Generate LLM metadata for OpenHands CLI.
|
|
|
|
Args:
|
|
model_name: Name of the LLM model
|
|
agent_name: Name of the agent (defaults to "openhands")
|
|
session_id: Optional session identifier
|
|
user_id: Optional user identifier
|
|
|
|
Returns:
|
|
Dictionary containing metadata for LLM initialization
|
|
"""
|
|
# Import here to avoid circular imports
|
|
openhands_sdk_version: str = 'n/a'
|
|
try:
|
|
import openhands.sdk
|
|
|
|
openhands_sdk_version = openhands.sdk.__version__
|
|
except (ModuleNotFoundError, AttributeError):
|
|
pass
|
|
|
|
openhands_tools_version: str = 'n/a'
|
|
try:
|
|
import openhands.tools
|
|
|
|
openhands_tools_version = openhands.tools.__version__
|
|
except (ModuleNotFoundError, AttributeError):
|
|
pass
|
|
|
|
metadata = {
|
|
'trace_version': openhands_sdk_version,
|
|
'tags': [
|
|
'app:openhands',
|
|
f'model:{model_name}',
|
|
f'type:{llm_type}',
|
|
f'web_host:{os.environ.get("WEB_HOST", "unspecified")}',
|
|
f'openhands_sdk_version:{openhands_sdk_version}',
|
|
f'openhands_tools_version:{openhands_tools_version}',
|
|
],
|
|
}
|
|
if session_id is not None:
|
|
metadata['session_id'] = session_id
|
|
if user_id is not None:
|
|
metadata['trace_user_id'] = user_id
|
|
return metadata
|
|
|
|
|
|
def get_default_cli_agent(
|
|
llm: LLM
|
|
):
|
|
agent = get_default_agent(
|
|
llm=llm,
|
|
cli_mode=True
|
|
)
|
|
|
|
return agent
|