@@ -1828,6 +1828,65 @@ export class API {
1828
1828
return Object . values ( result . data ) . map ( ( x : any ) => new DatasetItem ( x ) ) ;
1829
1829
}
1830
1830
1831
+ /**
1832
+ * Creates a prompt variation for an experiment.
1833
+ * This variation is not an official version until manually saved.
1834
+ *
1835
+ * @param name The name of the prompt to retrieve or create.
1836
+ * @param templateMessages A list of template messages for the prompt.
1837
+ * @param settings Optional settings for the prompt.
1838
+ * @param tools Optional tools for the prompt.
1839
+ * @returns The prompt variant id to link with the experiment.
1840
+ */
1841
+ public async createPromptVariant (
1842
+ name : string ,
1843
+ templateMessages : IGenerationMessage [ ] ,
1844
+ settings ?: Maybe < Record < string , any > > ,
1845
+ tools ?: Maybe < Record < string , any > >
1846
+ ) : Promise < string | undefined > {
1847
+ const mutation = `mutation createPromptExperiment(
1848
+ $fromLineageId: String
1849
+ $fromVersion: Int
1850
+ $scoreTemplateId: String
1851
+ $templateMessages: Json
1852
+ $settings: Json
1853
+ $tools: Json
1854
+ $variables: Json
1855
+ ) {
1856
+ createPromptExperiment(
1857
+ fromLineageId: $fromLineageId
1858
+ fromVersion: $fromVersion
1859
+ scoreTemplateId: $scoreTemplateId
1860
+ templateMessages: $templateMessages
1861
+ settings: $settings
1862
+ tools: $tools
1863
+ variables: $variables
1864
+ ) {
1865
+ id
1866
+ fromLineageId
1867
+ fromVersion
1868
+ scoreTemplateId
1869
+ projectId
1870
+ projectUserId
1871
+ tools
1872
+ settings
1873
+ variables
1874
+ templateMessages
1875
+ }
1876
+ }
1877
+ ` ;
1878
+
1879
+ const lineage = await this . getPromptLineageByName ( name ) ;
1880
+ const result = await this . makeGqlCall ( mutation , {
1881
+ fromLineageId : lineage ?. id ,
1882
+ templateMessages,
1883
+ settings,
1884
+ tools
1885
+ } ) ;
1886
+
1887
+ return result . data . createPromptExperiment ?. id ;
1888
+ }
1889
+
1831
1890
/**
1832
1891
* Creates a new dataset experiment.
1833
1892
* @param datasetExperiment
@@ -1840,20 +1899,20 @@ export class API {
1840
1899
public async createExperiment ( datasetExperiment : {
1841
1900
name : string ;
1842
1901
datasetId ?: string ;
1843
- promptId ?: string ;
1902
+ promptVariantId ?: string ;
1844
1903
params ?: Record < string , any > | Array < Record < string , any > > ;
1845
1904
} ) {
1846
1905
const query = `
1847
- mutation CreateDatasetExperiment($name: String!, $datasetId: String $promptId : String, $params: Json) {
1848
- createDatasetExperiment(name: $name, datasetId: $datasetId, promptId : $promptId , params: $params) {
1906
+ mutation CreateDatasetExperiment($name: String!, $datasetId: String, $promptExperimentId : String, $params: Json) {
1907
+ createDatasetExperiment(name: $name, datasetId: $datasetId, promptExperimentId : $promptExperimentId , params: $params) {
1849
1908
id
1850
1909
}
1851
1910
}
1852
1911
` ;
1853
1912
const datasetExperimentInput = {
1854
1913
name : datasetExperiment . name ,
1855
1914
datasetId : datasetExperiment . datasetId ,
1856
- promptId : datasetExperiment . promptId ,
1915
+ promptExperimentId : datasetExperiment . promptVariantId ,
1857
1916
params : datasetExperiment . params
1858
1917
} ;
1859
1918
const result = await this . makeGqlCall ( query , datasetExperimentInput ) ;
@@ -1947,6 +2006,34 @@ export class API {
1947
2006
return result . data . createPromptLineage ;
1948
2007
}
1949
2008
2009
+ /**
2010
+ * Get an existing prompt lineage by name.
2011
+ *
2012
+ * @param name - The name of the prompt lineage. This parameter is required.
2013
+ * @returns The existing prompt lineage object, or null.
2014
+ */
2015
+ public async getPromptLineageByName ( name : string ) {
2016
+ const query = `query promptLineage(
2017
+ $name: String!
2018
+ ) {
2019
+ promptLineage(
2020
+ name: $name
2021
+ ) {
2022
+ id
2023
+ }
2024
+ }` ;
2025
+
2026
+ const result = await this . makeGqlCall ( query , {
2027
+ name
2028
+ } ) ;
2029
+
2030
+ if ( ! result . data || ! result . data . promptLineage ) {
2031
+ return null ;
2032
+ }
2033
+
2034
+ return result . data . promptLineage ;
2035
+ }
2036
+
1950
2037
/**
1951
2038
* @deprecated Please use getOrCreatePrompt instead.
1952
2039
*/
0 commit comments