mirror of
https://github.com/rowboatlabs/rowboat.git
synced 2026-04-30 02:46:25 +02:00
Update data sources to include descriptions and send them to copilot
This commit is contained in:
parent
820150641c
commit
6875459327
13 changed files with 218 additions and 17 deletions
|
|
@ -1,7 +1,7 @@
|
|||
from openai import OpenAI
|
||||
from flask import Flask, request, jsonify
|
||||
from pydantic import BaseModel, ValidationError
|
||||
from typing import List, Dict, Any, Literal
|
||||
from typing import List, Dict, Any, Literal, Optional
|
||||
import json
|
||||
from lib import AgentContext, PromptContext, ToolContext, ChatContext
|
||||
from client import PROVIDER_COPILOT_MODEL
|
||||
|
|
@ -15,6 +15,14 @@ class AssistantMessage(BaseModel):
|
|||
role: Literal["assistant"]
|
||||
content: str
|
||||
|
||||
class DataSource(BaseModel):
|
||||
name: str
|
||||
description: Optional[str] = None
|
||||
active: bool = True
|
||||
status: str # 'pending' | 'ready' | 'error' | 'deleted'
|
||||
error: Optional[str] = None
|
||||
data: dict # The discriminated union based on type
|
||||
|
||||
with open('copilot_edit_agent.md', 'r', encoding='utf-8') as file:
|
||||
copilot_instructions_edit_agent = file.read()
|
||||
|
||||
|
|
@ -23,6 +31,7 @@ def get_response(
|
|||
workflow_schema: str,
|
||||
current_workflow_config: str,
|
||||
context: AgentContext | PromptContext | ToolContext | ChatContext | None = None,
|
||||
dataSources: Optional[List[DataSource]] = None,
|
||||
copilot_instructions: str = copilot_instructions_edit_agent
|
||||
) -> str:
|
||||
# if context is provided, create a prompt for the context
|
||||
|
|
@ -53,6 +62,16 @@ def get_response(
|
|||
else:
|
||||
context_prompt = ""
|
||||
|
||||
# Add dataSources to the context if provided
|
||||
data_sources_prompt = ""
|
||||
if dataSources:
|
||||
data_sources_prompt = f"""
|
||||
**NOTE**: The following data sources are available:
|
||||
```json
|
||||
{json.dumps([ds.model_dump() for ds in dataSources])}
|
||||
```
|
||||
"""
|
||||
|
||||
# add the workflow schema to the system prompt
|
||||
sys_prompt = copilot_instructions.replace("{workflow_schema}", workflow_schema)
|
||||
|
||||
|
|
@ -66,6 +85,7 @@ The current workflow config is:
|
|||
```
|
||||
|
||||
{context_prompt}
|
||||
{data_sources_prompt}
|
||||
|
||||
User: {last_message.content}
|
||||
"""
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue